j2e*_*nue 5 android function infix-notation kotlin kotlin-extension
看看这个简单的扩展函数,我有中缀:
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.
Run Code Online (Sandbox Code Playgroud)
现在让我们看看用法和我尝试过的:
它不是中缀,它遵循中缀规则:
我究竟做错了什么 ?
既然现在我使用显式对象,为什么会失败?ivLogo 是从 kotlin 合成的 ImageView。
为了使中缀函数起作用,应该在它的左侧放置一个对象的实际实例:
val result = someView isValidColor "#FFFFFF"
Run Code Online (Sandbox Code Playgroud)