PairからTripleを作る拡張関数を書いてみた - 2016/12/03の30分 Kotlinメモ🙈
今回紹介したコードとかは以下のリポジトリに雑に置いてあります。
toを3つ以上繋げて書いたらどうなるのか
KotlinにPairがあって、toを3つ以上繋げて書いたらどうなるのかなーとやってみた。
println(("b" to 2 to 2)) println(("b" to 2 to 2).javaClass) ■出力 ((b, 2), 2) class kotlin.Pair
ほむほむ。なるほど。Pair in Pairみたいな感じになるのね。
Pair<Pair<b,2>,2>
ってことか。
あれれ?確かTripleってあったよな?
あるね。
俺的にはA to B to C
って書いたら、Tripleになるのかなーとか思ってたけど、そうじゃないみたい。
残念。。。まあInfixには1つの引数しか指定できないからしょうがないかーと思った。
けど、Pairに拡張関数を作ればTripleにできるんじゃね?と思って、PairからTripleを作る拡張関数を書いてみた。
infix fun <A, B, C> Pair<A, B>.to(that: C): Triple<A, B, C> = Triple(this.first, this.second, that)
んまー、こんな感じかな?
んじゃ、Pair in Pairになってたやつと同じ処理を動かしてみるとー
println(("b" to 2 to 2)) println(("b" to 2 to 2).javaClass) ■出力 (b, 2, 2) class kotlin.Triple
うむ!A to B to C
と書いて、ちゃんとTripleになってる!成功だーやたー
Kotlinには4つ以上のTupleはないけど、自分で作って1つ値が少ないクラスに拡張関数を書けば、A to B to C to D
もできるわけだ。
まとめ
拡張関数 使い方に慣れてくるとよいなー