配列のスライス パート2
CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 74/86。
Swiftには、配列の先頭から、または末尾までをスライスするための便利な省略構文があります。0や最後のインデックスを明示的に指定する代わりに、範囲の片側を空のままにできます。
配列の先頭から特定のインデックスまでをスライスするには、開始値を省略します。
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3]
print(firstThree) // [10, 20, 30]同様に、特定のインデックスから末尾までをスライスするには、終了値を省略します。
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...]
print(fromIndex2) // [30, 40, 50]特定の終了インデックスを含めるために、閉区間版を使うこともできます。
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3]
print(upToIndex3) // ["a", "b", "c", "d"]この片側範囲を使うと、最初のいくつかの要素や、特定の位置以降のすべての要素が必要なときに、コードをすっきりと書けます。通常の配列が必要で、ArraySliceでは不都合な場合は、結果をArray()で囲むことを忘れないでください。
チャレンジ
簡単配列の指定されたインデックスから末尾までのすべての要素を返す関数 splitArray を作成してください。この関数は numbers と index を受け取ります。
片側範囲演算子 (...) を使って、指定されたインデックスから末尾までをスライスし、結果を通常の配列として返してください。
パラメータ:
numbers([Int]): スライスする配列index(Int): 開始インデックス(含む)
戻り値: 指定されたインデックスから配列の末尾までのすべての要素を含む配列 ([Int])
例: numbers が [5, 10, 15, 20, 25, 30] で、index が 3 の場合、関数は [20, 25, 30] を返します。
自分で試してみよう
func splitArray(numbers: [Int], index: Int) -> [Int] {
// ここにコードを書いてください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド