Mapで変換する
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 31/63。
コレクション操作 map は各要素にラムダを適用し、同じ順序で結果の新しいリストを返します。この操作は Map コレクション型とは異なります。値を変換しますが、ラムダがペアを返さない限り、キーと値のエントリは作成しません。
mainの中で:
val lengths = listOf("sun", "rain").map { it.length }
println(lengths)各単語がその長さになり、順序と要素数は同じままです。
map は入力要素ごとに 1 つの変換結果を返し、順序を維持します。
チャレンジ
中級パラメーター squares と values: List<Int> を完成させてください。入力順に各値の平方を返してください。値は -1000 から 1000 の範囲です。map を使用してください。
上記でより厳しい境界が指定されていない限り、コレクションは各レベルで最大 100 個の要素を含み、整数の引数および整数コレクションの値は -1000 から 1000 の範囲です。解析対象として提供されるテキストには、説明どおり、無効な表現や範囲外の表現が含まれる場合があります。
型 List<Int> の値を返してください。提供されている入力/出力コードはそのまま使用してください。スカラー引数は 1 行に 1 つずつ読み取られます。リストは個数の後に要素が続く形式で始まり、マップはエントリ数の後に各キーと値が続く形式で始まります。ネストされたリストでは、各行について個数と要素の形式が繰り返されます。提供されている main は、戻り値の後に改行を 1 つ付けて出力します。リストには Kotlin の標準的な角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun squares(values: List<Int>): List<Int> {
// ここに解答を書いてください。
return emptyList()
}
fun main() {
val valuesCount = readln().toInt()
val values = mutableListOf<Int>()
for (i0 in 0 until valuesCount) {
val valuesItem = readln().toInt()
values.add(valuesItem)
}
println(squares(values))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド