2017-10-12 6 views
-1

文字列や関数を格納する変数を作成する方法はありますか?同様var x:dynamicここで、xは任意の型や関数とすることができる。x="foo"; x= {print (...)}Kotlinで文字列と関数をとることができる変数を作成するには?

dynamicはタイプではありません(それだけで型チェックをオフ)とkotlin.js(JavaScriptの)でのみ動作します。関数型とAny型を含む型はありますか?

+0

を使用してキャストを助けることができます。しかし、なぜあなたは本当に文字列と関数を同じ変数に格納する必要がありますか? – marstran

+0

Any型と関数型の関係を知りたい。 – dilvan

+0

'Any'は単に' Object'です。機能オブジェクトはオブジェクトです。それがあなたが見つける唯一の共通のものです。 'Any'は全てのスーパークラスなので' Any'を含む型はありません。 – Moira

答えて

1

私はこのコードを試しても問題ありません。 var xはAnyであるため、任意の種類のデータ(nullableではない)を保持できます。 null可能なデータを保持するには、Any?

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

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

IDEスマートキャスト変数がありますが、Kotlinは、労働組合の種類を持っていないので、あなたが持っている最高の `Any`あるこの

 (x as()->Unit).invoke() 
関連する問題