如何创建一个可以在Kotlin中使用字符串和函数的变量?

如何创建一个可以在Kotlin中使用字符串和函数的变量?

问题描述:

有没有办法创建一个变量来存储字符串和函数?像var x:dynamic其中x可以是任何类型或功能:x="foo"; x= {print (...)}如何创建一个可以在Kotlin中使用字符串和函数的变量?

dynamic不是一种类型(它只是关闭类型检查)并且仅在kotlin.js(JavaScript)中有效。是否有包含函数类型和Any的类型?

+0

科特林没有工会类型的演员,所以最好你得到的是'Any'。但为什么你真的必须将字符串和函数存储在同一个变量中? – marstran

+0

我想知道Any和函数类型之间的关系。 – dilvan

+0

'Any'只是'Object'。功能对象是对象。这是你会发现的唯一常见的事情。因为任何东西都是所有东西的超类,所以不能包含任何类型。 – Moira

我试试这个代码,工作正常。 var x是Any,因此它可以容纳任何种类的数据(不可为空)。要保留可空数据使用Any?

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

     x = { println("") } 
     x.invoke() 

的IDE智能转换的变量,但你可以帮助使用此

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