看看我拥有中缀的这个简单扩展功能:
infix fun View.isValidColor(hexColor: String?): Boolean {
var isValid = true
return hexColor?.let {
try {
Color.parseColor(it)
} catch (e: Throwable) {
isValid = false
}
isValid
} ?: false
}
//notice how i have infix the extension meaning brackets are not needed, hopefully making it easier to read.
现在让我们看看用法和我尝试过的内容:
它不是前缀,并紧跟rule for infix之后:
我在做什么错?
更新:
我也尝试过此方法,但是通过显式调用引用类来进行工作:
因为现在我使用显式对象,为什么它失败了? ivLogo是Kotlin合成的ImageView。
答案 0 :(得分:1)
要使固定函数起作用,应在其左侧放置一个实际的对象实例:
val result = someView isValidColor "#FFFFFF"