android -Kotlin中缀无法在一个参数扩展函数上工作

r3i60tvu  于 2023-03-09  发布在  Kotlin
关注(0)|答案(1)|浏览(145)

看一下这个简单扩展函数:

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合成。

c8ib6hqw

c8ib6hqw1#

要使中缀函数工作,在它的左边应该放置一个对象的实际示例:

val result = someView isValidColor "#FFFFFF"

相关问题