2016/12/06の30分 Kotlinメモ⛄
書いてるコードは雑にここにあります。
Destructuring Declarations
分解宣言?かな?
んなこと言われてもわからねーよ!ってことで、以下のような感じ。
val (a1, b1) = ("a" to "b") println(a1) // a println(b1) // b for ((key, value) in mapOf("key1" to "value1", "key2" to "value2")) { println(key) println(value) } for ((a2, b2) in listOf(("a" to "b"), ("aa" to "bb"))) { println(a2) println(b2) }
なるほど。便利だ。
Object declarations
Singletonが楽に作れる。
// Singleton object DataProviderManager { fun test() { println("test") } } DataProviderManager.test()
Companion Objects
Kotlinにはstaticがないらしい。なのでその代わりにCompanion Objects使う的な?
んまー使いながらぼちぼち覚えます。
class TestActivity { // static companion object { val a = "test" fun createIntent() { println("createIntent") } } } TestActivity.createIntnt() TestActivity.a
Compile-Time Constants
定数?かな? const
をつける。
const val RESULT_OK = -1 // const var RESULT_OK = -1 error class TestActivity { // static companion object { const val RESULT_OK = -1 val a = "test" fun createIntent() { println("createIntent") } } }
以下の条件を満たす必要があるらしい。
- Top-level or member of an object
- Initialized with a value of type String or a primitive type
- No custom getter
なので、以下のようにPairとかは無理なのね。
const val a = ("a" to 1)
どこで使うんだろ?定数っぽいけどそうじゃない的な?
まとめ
謎いことが多かったので、ちょっと色んなコード見たり、書いたりして理解した方がよさげ。