prefix、suffix、dropFirst
宣言的にコレクションの一部を取り出します。
「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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 範囲によるスライスの作成
- ArraySliceのインデックスの仕組み
- スライスを配列に戻す
- prefix、suffix、dropFirst