コレクションに実装されている関数をほんの少しだけ見た件
どうも、りゃんじえです。(kGbから名前を変更しました)
最近、Android studio 触ってたらkotlinわからん事あったので、復習がてら入門書を読んでいます。
『やさしいkotlin入門』という本です。
この本に関するあれこれはまた書きたいと思っていますが、今はいち早くkotlinを勉強したいということで、単純に気になったことをメモとして書いていきたいと思います。
上記の本は、説明を文章ベースで行なっていたため、私としてはわかりやすかったです。
それぞれの機能や概念に関して、広く説明していくスタイルの書籍で、基礎の全容を知るにはいい本なのかもれません。
しかし、内容が薄くなれば、勿論、応じ気になるところ、もっと知りたくなる箇所がいっぱいあるわけです。(そういう意味では調べる習慣はつくかもしれない)
そこで、最近気になった箇所を調べたので、メモしようというわけです。そうですただの自己中メモです。すんませんすんません。
コレクション(map,list....)の類にはにforeachやfilterといった関数が備わっており.....
ふんふんそんな機能があるのね、ふんふん、だからこんな風に省略できるのねぇ.....
あ、その関数の説明ないんだ☺️.......
関数型のこと知らないし、他にどんな機能があるんだろう......はい調べましたlittle bit。
箇条書きでパパパっと書いていきます。
抽出
・filter
これは勉強している書籍にも一応記述があった。
true要素を返したものだけ抽出する。
val originalMap = mapOf("key1" to 1, "key2" to 2, "key3" to 3)
val filteredMap = originalMap.filter { it.value < 2 }
println(filteredMap) // {key1=1}
// original map has not changed
println(originalMap) // {key1=1, key2=2, key3=3}
codeは以下のページを参照しました。(参照したと言っても、全ての関数をこのページから乗せたとは言ってない......)
ちなみにfilterNotはfalseを返したものだけです。
・maxby, minby
最大値、最小値を返す。
arrayOf(1,2,3).maxBy{...}
・take, takeList
指定した数だけ要素を抽出する。
arrayOf(1,2,3,4,5,6,7,8,9).takeList(4)
→9,8,7,6
処理
・forEach, forEachIndexed
要素に対して順繰りに関数の実行を行う。
並び替え
・sort
並び替える。
arrayOf(9,8,7).sort()
→7,8,9
・sortBy
帰ってきた要素で並び替える。
arrayOf("あい","う","えおか").sortBy{p -> p.length()}
→1,2,3が帰ってくるはずなので、"う","あい","えおか"となる。
判定
・all, any
全て、もしくは一定の条件に一致すればtrue。
arrayOf(1,2,3,4).all{p -> p < 10}
合成
・plus
二つのリストをくっつける
arrayOf(1,2,3,4).plus(arrayOf(5,6,7))
・zip
二つのリストをペアにして返す。
arrayOf(1,2,3).zip(arrayOf("あ","い","う"))
書いてて思ったこと
仕組みがわからなかったら調べれば一発で出てくる。
(=自分でまとめるのはなんなら自己満アウトプット)