gpt4 book ai didi

properties - 如何将属性 getter 作为函数类型传递给另一个函数

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

如何将属性 getter 传递给接受函数类型的函数?

这是我想要实现的示例:

class Test {
val test: String
get() = "lol"

fun testFun(func: ()->String) {
// invoke it here
}

fun callTest() {
testFun(test::get)
// error: Type mismatch: inferred type is
// KFunction1<@ParameterName Int, Char> but () -> String was expected
}
}

有办法吗?

最佳答案

您可以通过编写::test(或this::test)来引用getter。

当您编写test::get 时,您实际上是在引用String 上的get 方法。该方法接受一个索引并返回该索引处的字符。

如果该属性是一个 var 并且您想要引用它的 setter,您可以编写 ::test::set

有关属性引用的更多信息,请参见此处:https://kotlinlang.org/docs/reference/reflection.html#bound-function-and-property-references-since-11

关于properties - 如何将属性 getter 作为函数类型传递给另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51840809/

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