2018年02月24日

KotlinでMutableSetが+でaddできる件

Kotlinスタートブック -新しいAndroidプログラミング

新品価格
¥3,780から
(2018/2/24 23:35時点)



KotlinでMutableSetに対して
Java的に考えるとaddの関数でリストに追加するかと思いきや
+でも追加できることがわかったので
なんで動くか調べて見た

・コード
val _targets: MutableSet<String> = mutableSetOf()
_targets.add(target) //これが正しいかと思いきや
_targets += target //こうもかける


・調べて見た
cmd+マウスクリックしたら
以下が出てきた
@kotlin.internal.InlineOnly
public inline operator fun <T> MutableCollection<in T>.plusAssign(element: T) {
this.add(element)
}
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/plus-assign.html


・コードの意味を調べて見た
InlineOnly
Kotlinのprivate methodらしい
https://stackoverflow.com/questions/45763075/what-is-the-inlineonly-annotation

拡張関数だとfunの後ろにジェネリックを作れる
http://taro.hatenablog.jp/entry/20120127/1327652146

in T
反変 Tのsuper class
val _targets: MutableSet = mutableSetOf()
val target:String = "a"
_targets.add(target)
にしても動く
http://kotlin.hatenablog.jp/entry/2012/12/17/234300



KotlinはJavaより便利になってるんで
色々覚えることがありそうですね
まだまだ続くよ


タグ:Kotlin
posted by マスタカ at 23:36 | Comment(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。