Kotlin リストをサブリストに分解するにはどうすればいいですか? 質問する

Kotlin リストをサブリストに分解するにはどうすればいいですか? 質問する

Kotlin のリストを 2 つのサブリストに分割するにはどうすればよいでしょうか? 現在、私は次のようにしています:

val (first, rest) = listOf("one", "two", "three")

しかし、そうすると、最初が「1」で残りが「2」になります。私はそれらを および にしたいのfirst =["first"]ですrest = ["two", "three"]

この「デストラクタ」構文を使用してもこれは可能ですか?

ベストアンサー1

構造破壊component1は、オブジェクトに対して、、などの演算子関数を呼び出すことを意味しますcomponent2。 の場合List、これらは次のように定義されます。標準ライブラリの拡張機能、N 番目の要素をそれぞれ返します。


必要に応じてリストを分割し、Pair構造化解除できる を返す独自の拡張機能を定義できます。

fun <T> List<T>.split() = Pair(take(1), drop(1))

これは次のように使用できます。

val (first, rest) = listOf("one", "two", "three").split()

println(first) // [one]
println(rest)  // [two, three]

おそらく、もっと良い名前を付けたほうがsplit賢明でしょう。

おすすめ記事