0Pricing
Swift Academy · レッスン

片側範囲

スライスに使う終端のない範囲を表現します。

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

片側範囲とは

片側範囲は、一方の境界を省略した範囲です。コレクションを、ある位置から末尾まで、または先頭からある位置まで切り出すときによく使います。

let letters = ["a", "b", "c", "d", "e"]
let tail = letters[2...]
print(Array(tail))

あるインデックスから末尾まで

arr[2...] は「インデックス 2 から末尾まで」を意味します。開始インデックスは含まれます。

let nums = [10, 20, 30, 40]
print(Array(nums[1...]))

あるインデックスまで

arr[..<3] は「先頭からインデックス 3 の手前まで」を意味します。

let nums = [10, 20, 30, 40]
print(Array(nums[..<3]))

あるインデックスを含む範囲

arr[...2] は「先頭からインデックス 2 まで」を意味し、インデックス 2 も含みます。

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

スライスはインデックスを共有する

スライスは元のインデックスを保持します。arr[2...] の最初の要素も 0 ではなく、インデックス 2 にあります。

let nums = [10, 20, 30, 40]
let slice = nums[2...]
print(slice.startIndex)
print(slice[2])

スライスを変換する

インデックスを 0 から振り直したり、独立した配列を取得したりするには、スライスを Array(...) でラップしてください。

let nums = [10, 20, 30, 40]
let rest = Array(nums[1...])
print(rest[0])

パターンマッチングでの片側範囲

片側範囲は switch のパターンとしても使えます。case 18... は 18 以上の値に一致します。

let age = 70
switch age {
case ..<18:
    print("Minor")
case 18...:
    print("Adult")
default:
    print("?")
}

下限側の片側パターン

case ..<0 は 0 未満のすべての値に一致するため、負の値を検出するのに便利です。

let value = -3
switch value {
case ..<0:
    print("negative")
case 0:
    print("zero")
default:
    print("positive")
}

文字列の先頭部分

片側範囲は、文字列のインデックスと組み合わせることで、文字列の切り出しにも使えます。ここではスライスを使って最初の文字を取り除いています。

let word = "Swift"
let chars = Array(word)
let rest = chars[1...]
print(String(rest))

スライスの組み合わせ

2つの片側スライスを使うと、配列の先頭部分と末尾部分を取得できます。

let data = [1, 2, 3, 4, 5, 6]
let head = Array(data[..<2])
let tail = Array(data[4...])
print(head)
print(tail)

安全なスライス

境界を超えてスライスするとクラッシュするため、入力から取得したインデックスを使う場合は、先に範囲内か確認してください。

let nums = [1, 2, 3]
let start = 1
if start < nums.count {
    print(Array(nums[start...]))
}

確認問題

片側範囲を試してみましょう。

まとめ:片側範囲

arr[2...]、arr[..<3]、arr[...2] のような片側範囲を使うと、ある位置から、またはある位置までスライスできます。スライスは元のインデックスを保持するため、インデックスを振り直すには Array(...) を使用してください。片側範囲は switch のパターンとしても使えます。

let a = [1, 2, 3, 4]
print(Array(a[2...]))

よくある質問

「片側範囲」レッスンは無料ですか?

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

「片側範囲」で何を学びますか?

スライスに使う終端のない範囲を表現します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「片側範囲」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 閉じた範囲と半開範囲
  2. 片側範囲
  3. stride(from:to:by:)によるカウント
  4. コレクションとしての範囲
← Swift Academyに戻る