Dynamic 如何创建可以在Kotlin中接受字符串和函数的变量?

Dynamic 如何创建可以在Kotlin中接受字符串和函数的变量?,dynamic,types,kotlin,Dynamic,Types,Kotlin,有没有办法创建一个变量来存储字符串和函数?比如var x:dynamic其中x可以是任何类型或函数:x=“foo”;x={print(…)} dynamic不是一种类型(它只是关闭类型检查),只在kotlin.js(JavaScript)中工作。是否有包含函数类型和任意类型的类型?我尝试了这段代码,效果很好。 var x是Any,因此它可以在其中保存任何类型的数据(不可为null)。要保存可为空的数据,请使用任何 var x: Any = "foo" printl

有没有办法创建一个变量来存储字符串和函数?比如
var x:dynamic
其中x可以是任何类型或函数:
x=“foo”;x={print(…)}


dynamic
不是一种类型(它只是关闭类型检查),只在kotlin.js(JavaScript)中工作。是否有包含函数类型和任意类型的类型?

我尝试了这段代码,效果很好。 var x是Any,因此它可以在其中保存任何类型的数据(不可为null)。要保存可为空的数据,请使用任何

        var x: Any = "foo"
        println( x )

        x = { println("") }
        x.invoke()
IDE智能转换变量,但您可以使用此命令帮助转换

       (x as ()->Unit).invoke()

Kotlin没有联合类型,因此您最好使用
Any
。但是为什么你真的要将字符串和函数存储在同一个变量中呢?我想知道Any和函数类型之间的关系。
Any
就是
Object
。功能对象是对象。这是你能找到的唯一普通的东西。不能有包含
Any
的类型,因为
Any
是所有事物的超类。我建议使用密封类,因为您有一组封闭的可能类型<代码>任何都太宽了。