配列のスライス パート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() でラップすることを忘れないでください。
チャレンジ
簡単numbersとindexを受け取り、指定されたインデックスから配列の末尾までのすべての要素を返す関数splitArrayを作成してください。
片側範囲演算子(...)を使用して、指定されたインデックスから末尾までをスライスし、その結果を通常の配列として返します。
引数:
numbers([Int]): スライスする配列index(Int): 開始インデックス(その値を含む)
戻り値: 指定されたインデックスから配列の末尾までのすべての要素を含む配列([Int])
例: numbersが[5, 10, 15, 20, 25, 30]でindexが3の場合、関数は[20, 25, 30]を返す必要があります。
チートシート
Swiftでは、範囲の片側を空にすることで、配列を最初から、または最後までスライスするための短縮構文が提供されています。
最初から特定のインデックスまでスライスするには、開始値を省略します:
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3] // [10, 20, 30]特定のインデックスから最後までスライスするには、終了値を省略します:
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...] // [30, 40, 50]特定の終了インデックスを含めるには、閉範囲(closed range)バージョンを使用します:
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3] // ["a", "b", "c", "d"]片側範囲は ArraySlice を返します。結果を Array() で囲むことで、通常の配列に変換できます:
let regularArray = Array(numbers[2...])自分で試してみよう
func splitArray(numbers: [Int], index: Int) -> [Int] {
// ここにコードを記述してください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。