配列のスライス パート1
CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 73/86。
配列全体ではなく、その一部だけが必要になることがあります。Swiftでは、範囲演算子を使った配列スライスによって、要素のサブセットを簡単に抽出できます。
スライスを取得するには、添字の角括弧内に範囲を指定します。最も一般的な方法では、半開範囲演算子(..<)を使用します。これは開始インデックスを含み、終了インデックスを除外します。
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]ここで、1..<4 はインデックス 1、2、3 の要素を返しますが、インデックス 4 は返しません。停止したい位置が正確にわかっている場合に便利です。
endインデックスを含める場合は、閉区間演算子(...)を使用します:
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]重要な点が1つあります。スライスの結果は通常のArrayではなく、ArraySliceです。本当の配列が必要な場合は、Array()でラップします。
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]チャレンジ
簡単numbers、start、endを受け取り、開始インデックスから終了インデックス(終了インデックスは含まない)までの配列のスライスを返す関数 getMiddleElements を作成してください。
半開区間演算子(..<)を使用して配列の指定された部分を抽出し、通常の配列として返してください。
パラメーター:
numbers([Int]):スライスする配列start(Int):開始インデックス(含む)end(Int):終了インデックス(含まない)
戻り値:開始インデックスから終了インデックス(終了インデックスは含まない)までの要素を含む配列([Int])
例:numbers が [10, 20, 30, 40, 50, 60]、start が 1、end が 4 の場合、関数は [20, 30, 40] を返します。
自分で試してみよう
func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
// ここにコードを書いてください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド