Menu
Coddy logo textTech

配列のスライス パート1

CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 73/86。

時には、配列全体ではなく、その一部だけが必要な場合があります。Swiftでは、範囲演算子を用いた配列スライシング(array slicing)を使用して、要素のサブセットを簡単に抽出できます。

スライスを取得するには、サブスクリプトの括弧内で範囲を使用します。最も一般的な手法では、開始インデックスを含み、終了インデックスを含まない半開範囲演算子(..<)を使用します:

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)  // [20, 30, 40]

ここでは、1..<4はインデックス1、2、3の要素を返しますが、インデックス4は含まれません。これは、どこで停止するかを正確に把握している場合に便利です。

終了インデックスを含めたい場合は、閉範囲演算子(...)を使用します:

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]
challenge icon

チャレンジ

簡単

numbersstart、および end を受け取り、開始インデックスから終了インデックス(終了インデックスは含まない)までの配列のスライスを返す関数 getMiddleElements を作成してください。

半開範囲演算子 (..<) を使用して配列の指定された部分を抽出し、それを通常の配列として返します。

パラメータ:

  • numbers ([Int]): スライスする配列
  • start (Int): 開始インデックス(含める)
  • end (Int): 終了インデックス(含めない)

戻り値: 開始インデックスから終了インデックス(終了インデックスは含まない)までの要素を含む配列 ([Int])

例: numbers[10, 20, 30, 40, 50, 60]start1end4 の場合、関数は [20, 30, 40] を返す必要があります。

チートシート

Swiftでは、範囲演算子を使用した配列のスライシングによって、配列の一部を抽出することができます。

半開範囲演算子 (..<) を使用すると、開始インデックスから終了インデックスの直前まで(終了インデックスを含まない)をスライスできます:

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)  // [20, 30, 40]

終了インデックスを含めるには、閉範囲演算子 (...) を使用します:

let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice)  // ["b", "c", "d"]

配列のスライシングは ArraySlice を返します。これを通常の Array に変換するには、Array() で囲みます:

let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced)  // [1, 2, 3]

自分で試してみよう

func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
    // ここにコードを書いてください
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン