gpt4 book ai didi

oop - 将静态方法作为参数传递给Kotlin中的另一个方法

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

根据this question,可以将一个函数作为参数传递给另一个函数,如下所示

fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}

fun buz(m: String) {
println("another message: $m")
}

fun something() {
foo("hi", ::buz)
}
同样,我们也可以从类中传递方法
class OtherClass {
fun buz(m: String) {
println("another message: $m")
}
}

foo("hi", OtherClass()::buz)
但是,如果我们要传递的方法是静态的(在同伴对象内)怎么办?
class OtherClass {
companion object {
fun buz(m: String) {
println("another message: $m")
}
}
}
我知道,由于它是静态的,因此我们可以直接调用该方法,而不必诉诸于将其作为参数传递,但是,在某些情况下(例如,利用预先存在的代码),这将是有用的。

最佳答案

要访问类的伴侣对象,请使用${className}.Companion。所以...
foo("hit", OtherClass.Companion::buz)

关于oop - 将静态方法作为参数传递给Kotlin中的另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59578636/

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