2017-10-12 24 views
-1

有沒有辦法創建一個變量來存儲字符串和函數?像var x:dynamic其中x可以是任何類型或功能:x="foo"; x= {print (...)}如何創建一個可以在Kotlin中使用字符串和函數的變量?

dynamic不是一種類型(它只是關閉類型檢查)並且僅在kotlin.js(JavaScript)中有效。是否有包含函數類型和Any的類型?

+0

科特林沒有工會類型的演員,所以最好你得到的是'Any'。但爲什麼你真的必須將字符串和函數存儲在同一個變量中? – marstran

+0

我想知道Any和函數類型之間的關係。 – dilvan

+0

'Any'只是'Object'。功能對象是對象。這是你會發現的唯一常見的事情。因爲任何東西都是所有東西的超類,所以不能包含任何類型。 – Moira

回答

1

我試試這個代碼,工作正常。 var x是Any,因此它可以容納任何種類的數據(不可爲空)。要保留可空數據使用Any?

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

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

的IDE智能轉換的變量,但你可以幫助使用此

 (x as()->Unit).invoke() 
相關問題