刚接触Kotlin,想知道是否有可能动态地给伴随对象的变量赋值。阅读这里的文档和一些答案,但是没有提到这一点。
class Printer {
companion object {
fun printAnything() {
println("printing anything..")
}
}
}
fun printA() {
println("printing A!")
}
fun main(args: Array<String>) {
printA()
Printer.printAnything = :: printA // doesn't compile, perhaps a different way?
}
1条答案
按热度按时间uurity8g1#
不能重新分配用
fun
声明的函数。它总是指向同一个函数。但是可以创建一个var
来保存对函数的引用。保存函数的var
或val
属性可以作为函数调用,就像它是fun
声明一样。你可以在任何地方创建这样的变量,不管它是否在伴随对象中。所以,你可以这样创建你的
Printer
伴随对象: