當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Swift UnboundedRange_用法及代碼示例

枚舉

UnboundedRange_

表示集合的整個範圍的範圍表達式。

聲明

@frozen enum 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(_:_:),請在每個字符串的下標中使用無界範圍。


let word1 = "grizzly"
let word2 = "grisly"
let changes = countLetterChanges(word1[...], word2[...])
// changes == 2

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 UnboundedRange_。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。