カテゴリ: Swift 更新日: 2025/12/17

SwiftのArraySliceと部分配列の使い方を完全解説!初心者でもわかるスライスの基本

Swift スライス(ArraySlice)と部分配列の効率的な扱い方
Swift スライス(ArraySlice)と部分配列の効率的な扱い方

先生と生徒の会話形式で理解しよう

生徒

「Swiftで配列の一部分だけを取り出すことってできますか?」

先生

「はい、SwiftではArraySlice(アレイスライス)を使って、配列の一部だけを簡単に取り出すことができますよ。」

生徒

「それって、ふつうの配列とどう違うんですか?」

先生

「それでは、ArraySliceと配列の違いや使い方を詳しく見ていきましょう!」

1. ArraySlice(アレイスライス)とは?

1. ArraySlice(アレイスライス)とは?
1. ArraySlice(アレイスライス)とは?

ArraySliceは、SwiftのArray(配列)から一部の要素だけを取り出したときに使われる特別な型です。

たとえば、10個のデータがある配列から「2番目から5番目だけ使いたい」といった場合に便利です。スライスとは、「一部を切り取ったもの」という意味で、まさにその名の通り、配列の一部分だけを扱うときに使います。

2. 部分配列を作る方法|スライスの基本

2. 部分配列を作る方法|スライスの基本
2. 部分配列を作る方法|スライスの基本

それでは、実際にArraySliceを使って、配列の一部を取り出してみましょう。


let numbers = [10, 20, 30, 40, 50, 60]
let slice = numbers[1...3]
print(slice)

この例では、numbers[1...3]と指定することで、2番目〜4番目の値(20, 30, 40)を取り出しています。

このときsliceの型はArraySlice<Int>になります。

3. ArraySliceとArrayの違いとは?

3. ArraySliceとArrayの違いとは?
3. ArraySliceとArrayの違いとは?

ArraySliceは見た目は配列と似ていますが、インデックスの扱いが異なるのがポイントです。


let numbers = [100, 200, 300, 400, 500]
let slice = numbers[2...4]
print(slice[2]) // 300

ここでslice[2]と書くと、元の配列のインデックス2(300)がそのまま使えます。

ただし、スライスのインデックスは0からではなく、元の配列の位置を引き継いでいる点に注意が必要です。

4. スライスを通常の配列(Array)に戻すには?

4. スライスを通常の配列(Array)に戻すには?
4. スライスを通常の配列(Array)に戻すには?

ArraySliceはそのままでは使いにくい場面もあります。特にインデックスを0から始めたいときなどは、Arrayに変換しましょう。


let numbers = [5, 10, 15, 20, 25]
let slice = numbers[1...3]
let newArray = Array(slice)
print(newArray)

Array(slice)のように書くことで、スライスをふつうの配列に変換できます。

5. スライスの範囲指定|startIndexとendIndexを使おう

5. スライスの範囲指定|startIndexとendIndexを使おう
5. スライスの範囲指定|startIndexとendIndexを使おう

スライスでは、startIndexendIndexプロパティを使って、開始位置や終了位置を動的に調べることもできます。


let names = ["さくら", "たけし", "ひろし", "あや", "まこと"]
let slice = names[1...3]

print("開始位置: \(slice.startIndex)")
print("終了位置: \(slice.endIndex)")

endIndexは「最後の要素の次の位置」を指すので、forループなどで使うときに便利です。

6. スライスの活用場面|大量データの処理に最適

6. スライスの活用場面|大量データの処理に最適
6. スライスの活用場面|大量データの処理に最適

ArraySliceは、実はメモリの節約にも役立ちます。

元の配列を丸ごとコピーするのではなく、「見た目だけ一部分を切り出す」ため、データ量が多い場合には非常に効率的です。

たとえば、10000件ある配列から最初の100件だけを処理したいときに、わざわざ新しい配列を作るよりも、スライスを使った方が軽くて速くなります。

7. for文でスライスをループ処理する方法

7. for文でスライスをループ処理する方法
7. for文でスライスをループ処理する方法

ArraySliceArrayと同じようにfor-in文で1つずつ取り出すことができます。


let data = [1, 2, 3, 4, 5, 6]
let part = data[2...4]

for value in part {
    print(value)
}

このようにスライスした部分だけを効率よく処理できます。

8. スライスの注意点|データの変更と参照について

8. スライスの注意点|データの変更と参照について
8. スライスの注意点|データの変更と参照について

ArraySliceは、元の配列とメモリを共有しているため、元の配列が変更されるとスライスの内容も変わる可能性があります。


var scores = [70, 80, 90, 100]
let slice = scores[1...2]
scores[1] = 85
print(slice)

このように、スライスは「元の配列の一部を参照している」という性質を持つので、変更が必要な場合はArrayに変換して使うのが安全です。

9. 配列の一部を取り出すテクニックまとめ(一覧)

9. 配列の一部を取り出すテクニックまとめ(一覧)
9. 配列の一部を取り出すテクニックまとめ(一覧)
操作 使い方 用途
numbers[1...3] 範囲でスライスを作成 部分配列の取り出し
Array(slice) スライスを配列に変換 インデックスのリセット
slice.startIndex 開始位置を取得 ループ処理などに活用
slice.endIndex 終了位置(次の位置) for文と組み合わせ
関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のオブジェクト指向の特徴を完全ガイド!初心者でも理解できる他言語との違い
New2
Go言語
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
New3
Kotlin
Kotlinのクラス設計に役立つベストプラクティスまとめ|初心者でもわかるクラス設計の考え方
New4
Kotlin
Kotlinでアーキテクチャ設計の基本!MVC・MVP・MVVMの違いを解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.3
Java&Spring記事人気No3
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.7
Java&Spring記事人気No7
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.8
Java&Spring記事人気No8
Swift
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎