Swift Academy · レッスン

prefix、suffix、dropFirst

宣言的にコレクションの一部を取り出します。

レッスン 4/413 ステップ

「prefix、suffix、dropFirst」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

prefix(n)

prefix(n) は、先頭の n 個の要素のスライスを返します。n が配列の要素数より大きくても安全です。

let arr = [1, 2, 3, 4, 5]
print(Array(arr.prefix(3)))
print(Array(arr.prefix(99)))

suffix(n)

suffix(n) は、末尾の n 個の要素のスライスを返し、要素数を超える場合も安全に調整されます。

let arr = [1, 2, 3, 4, 5]
print(Array(arr.suffix(2)))
print(Array(arr.suffix(0)))

dropFirst

dropFirst() は先頭の要素を取り除き、dropFirst(n) は先頭の n 個を取り除きます。

let arr = [10, 20, 30, 40]
print(Array(arr.dropFirst()))
print(Array(arr.dropFirst(2)))

dropLast

dropLast() は末尾から要素を取り除きます。ほかのメソッドと同様に、スライスを返します。

let arr = [10, 20, 30, 40]
print(Array(arr.dropLast()))
print(Array(arr.dropLast(3)))

すべてスライスを返す

これらのメソッドはすべて、新しい配列ではなく ArraySlice を返します。具体的な配列が必要なときに変換してください。

let arr = [1, 2, 3, 4]
let s = arr.prefix(2)
print(type(of: s))

大きなnでも安全

範囲外の範囲を添字で指定する場合とは異なり、これらのメソッドがクラッシュすることはありません。存在する数を超えて要求すると、利用可能な要素だけが返されます。

let arr = [1, 2]
print(Array(arr.prefix(10)))
print(Array(arr.dropFirst(10)))

prefix(while:)

prefix(while:) は、条件が成立している間、先頭から要素を取得し、条件が成立しなくなった時点で停止します。

let arr = [2, 4, 6, 7, 8]
let evensAtStart = arr.prefix(while: { $0 % 2 == 0 })
print(Array(evensAtStart))

drop(while:)

drop(while:) は、条件が成立している間、先頭の要素をスキップし、残りを返します。

let arr = [2, 4, 6, 7, 8]
let rest = arr.drop(while: { $0 % 2 == 0 })
print(Array(rest))

メソッドの組み合わせ

これらをチェーンすると、スライス処理を簡潔に表現できます。たとえば、先頭と末尾の要素以外を取得できます。

let arr = [10, 20, 30, 40, 50]
let middle = arr.dropFirst().dropLast()
print(Array(middle))

覗いてから取り出すパターン

first で先頭を確認し、dropFirst() で残りを取得する方法は、リスト処理でよく使われる関数型のパターンです。

let queue = [100, 200, 300]
if let head = queue.first {
    let tail = Array(queue.dropFirst())
    print("head:", head, "tail:", tail)
}

意図を読み取りやすくする

これらのメソッドは、手動で範囲を指定するよりも意図を明確に伝えます。arr.suffix(3) のほうが arr[(arr.count-3)...] よりも読みやすくなります。

let arr = [1, 2, 3, 4, 5, 6]
print(Array(arr.suffix(3)))

確認テスト

prefixとdropの動作をテストしてください。

まとめ

prefix(n) と suffix(n) は両端から要素を取得し、dropFirst と dropLast は両端から要素を取り除きます。すべてスライスを返し、要素数を超える値を指定しても安全です。prefix(while:) と drop(while:) は述語を使用します。

let arr = [1, 2, 3, 4, 5]
print(Array(arr.prefix(2)), Array(arr.suffix(2)), Array(arr.dropFirst()))
無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
122
レッスン
409

よくある質問

「prefix、suffix、dropFirst」レッスンは無料ですか?

はい。「prefix、suffix、dropFirst」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「prefix、suffix、dropFirst」で何を学びますか?

宣言的にコレクションの一部を取り出します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「prefix、suffix、dropFirst」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 範囲によるスライスの作成
  2. ArraySliceのインデックスの仕組み
  3. スライスを配列に戻す
  4. prefix、suffix、dropFirst
← Swift Academyに戻る