gpt4 book ai didi

Kotlin 成员和扩展同时使用

转载 作者:行者123 更新时间:2023-12-01 10:27:02 25 4
gpt4 key购买 nike

为了更多地了解 Kotlin 并尝试使用它,我正在开发一个示例 Android 应用程序,我可以在其中尝试不同的东西。

但是,即使在该主题上搜索了一段时间后,我也无法为以下问题找到正确的答案:

让我们在 View 类上声明一个(虚拟)扩展函数:

fun View.isViewVisibility(v: Int): Boolean = visibility == v

现在我怎样才能从其他地方引用这个函数以便以后调用 invoke() 呢?
val f: (Int) -> Boolean = View::isViewVisibility

目前给我:

Error:(57, 35) Type mismatch: inferred type is KFunction2 but (Int) -> Boolean was expectedError:(57, 41) 'isViewVisibility' is a member and an extension at the same time. References to such elements are not allowed



有什么解决方法吗?
谢谢 !

最佳答案

扩展是静态解析的,其中第一个参数接受接收器类型的实例。 isViewVisibility 实际上接受两个参数, ViewInt 。所以,它的正确类型应该是 (View, Int) -> Boolean ,像这样:

val f: (View, Int) -> Boolean = View::isViewVisibility

关于Kotlin 成员和扩展同时使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46562039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com