android - kotlin 中缀不适用于一个参数扩展函数

android - kotlin infix not working on one parameter extension function

看看我有中缀的这个简单的扩展函数:

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. 必须是成员函数或扩展函数。
  2. 它们必须有一个参数。
  3. 该参数不能接受可变数量的参数并且不能有默认值。

我做错了什么?

更新:
我也试过这个,但它通过显式调用引用 class 来工作:

既然我现在都在使用显式对象,为什么会失败? ivLogo 是一个由 kotlin 合成的 ImageView。

要使 infix 函数起作用,应该在它的左侧放置一个实际的对象实例:

val result = someView isValidColor "#FFFFFF"