看一下这个简单扩展函数:
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:
1.必须是成员函数或扩展函数。
1.它们必须具有单个参数。
1.参数不能接受可变数目的参数,并且不能有默认值。
我做错了什么?
更新:
我也尝试过这样做,但它通过显式调用引用类来工作:
既然现在我使用显式对象,为什么会失败?ivLogo是来自kotlin的ImageView合成。
1条答案
按热度按时间c8ib6hqw1#
要使中缀函数工作,在它的左边应该放置一个对象的实际示例: