カテゴリ: 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に変換して使うのが安全です。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

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

9. 配列の一部を取り出すテクニックまとめ(一覧)
9. 配列の一部を取り出すテクニックまとめ(一覧)
操作 使い方 用途
numbers[1...3] 範囲でスライスを作成 部分配列の取り出し
Array(slice) スライスを配列に変換 インデックスのリセット
slice.startIndex 開始位置を取得 ループ処理などに活用
slice.endIndex 終了位置(次の位置) for文と組み合わせ
関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

関連記事:
カテゴリの一覧へ
新着記事
New1
Swift
Swiftのnilとは?Optionalとの関係や初期化について初心者向けにやさしく解説!
New2
Go言語
Go言語のinit関数の役割と使い方!プログラム起動時の初期化処理
New3
Go言語
Go言語のマップの順序保証がない理由と扱い方の工夫をやさしく解説!初心者でもわかる基本知識
New4
Kotlin
Kotlinのforループの基本!範囲・配列・コレクションの繰り返し処理
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Kotlinのsettings.gradleファイルを完全解説!初心者でもわかるプロジェクト設定の基本
No.2
Java&Spring記事人気No2
Go言語
Swiftの配列(Array)の使い方を完全ガイド!初心者でもわかるデータのまとめ方
No.3
Java&Spring記事人気No3
Go言語
Go言語のSQLインジェクション対策を完全解説!初心者でも安全なデータベース操作がわかる
No.4
Java&Spring記事人気No4
Swift
Swiftの高階関数map・filter・reduceを完全解説!初心者でもわかる配列操作の基本
No.5
Java&Spring記事人気No5
Go言語
Swiftの文字列操作を完全ガイド!初心者でもわかるStringの基本
No.6
Java&Spring記事人気No6
Kotlin
KotlinのRoomで複雑なクエリを使いこなす!初心者でもわかる応用テクニック
No.7
Java&Spring記事人気No7
Go言語
Go言語のgo installコマンドの役割とインストール先の仕組みを徹底解説!
No.8
Java&Spring記事人気No8
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方