文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Supporting Types   >  UnboundedRange_
列挙型
UnboundedRange_
コレクションの範囲全体を表す範囲式。
概要
無限範囲演算子 (...) を使用して、コレクションのすべての要素を含むコレクションのスライスを作成できます。無限の範囲でスライスすることは、基本的にコレクションのインスタンスをそのスライス型に変換することです。
たとえば、以下のコードでは、countLetterChanges(_:_:) を宣言し、この関数は、ある語句を別の語句に変更するために必要な変更の数を検出します。この関数は、再帰的アプローチを使用して、元の文字列のより小さい部分について同じ比較を実行します。countLetterChanges(_:_:) が、各ステップで文字列のコピーを作成せずに再帰を使用するためには、文字列のスライス型である Substring をそのパラメータとして使用します。
func countLetterChanges(_ s1: Substring, _ s2: Substring) -> Int { if s1.isEmpty { return s2.count } if s2.isEmpty { return s1.count } let cost = s1.first == s2.first ? 0 : 1 return min( countLetterChanges(s1.dropFirst(), s2) + 1, countLetterChanges(s1, s2.dropFirst()) + 1, countLetterChanges(s1.dropFirst(), s2.dropFirst()) + cost) }
countLetterChanges(_:_:) を 2 つの文字列で呼び出すには、各文字列の添え字に無限の範囲を使用します。
let word1 = "grizzly"
let word2 = "grisly"
let changes = countLetterChanges(word1[...], word2[...])
// changes == 2
トピックス
無限の範囲を作成
static func ... (UnboundedRange_)
無限の範囲式を作成します。
型エイリアス
無限の範囲演算子の型です。
以下も見よ
範囲の式
上限までの、それを含まない半開放の部分区間。
上限までの、それを含む部分区間。
下限から上に延びる部分区間。
コレクションをスライスするために使用できる型。