'init(start:end :)'被弃用:它将在Swift中被移除3.使用'..'运算符

我使用下面的代码:

var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0) 

由于更新到Xcode 7.3(Swift 2.2)我得到了以下提示:

'init(start:end :)'被弃用:它将在Swift中被移除3.使用'..'运算符。

对于我来说,不清楚如何“正确地”翻译“使用”..“”操作符。

你应该简单地写

 var continousDigitsRange1:Range<Int> = 0..<0 

或者如果你想走得更简单

 var continousDigitsRange = 0..<0 

另外值得注意的是,以substringWithRange一个string,你现在可以使用

 let theString = "Hello, how are you" let range = theString.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end) theString.substringWithRange(range) 

闭范围运算符(a...b)定义从a到b的范围,并包含值a和b。 a的值不能大于b。

半开范围运算符(a..<b)定义从a到b的范围,但不包括b。 它被认为是半开放的,因为它包含了它的第一个价值,而不是它的最终价值。 与封闭范围操作符一样,a的值不得大于b。 如果a的值等于b,则结果范围将为空。

Swift编程语言(Swift 2.2) – 基本操作符

 var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0) --to-- var continousDigitsRange:Range<Int> = 0..<0 

展示bmichotte的全部答案

 let theString = "Hello, how are you today my friend" let start = 3 let end = 15 let range = theString.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end) let p = theString.substringWithRange(range) print("this is the middle bit>\(p)<") 

这产生这是中间位> lo,怎么样<

参考swift 3.0添加一些要点

//可数范围示例。

let range1 = 0..<5

可数闭范围示例

 let range2 = 0...5 

//范围从边界

 let range = Range(uncheckedBounds: (range1.lowerBound,range1.upperBound)) 

//得到substringRange的距离

 let str = "Hello, how are you" let substringRange = str.characters.indices 

//在Swift 3.0之下

 let length = substringRange.distance(from: substringRange.startIndex, to: substringRange.endIndex) 

//对于Swift 3.0

 let length2 = str.distance(from: substringRange.startIndex, to: substringRange.endIndex) 

我一直有一个函数来获取string的子string范围。 这里是我更新的Swift 3的函数:

 func getSubStringRange(fullString: String, fromIndex: Int, subStringSize: Int) -> Range<String.Index> { let startIndex = fullString.characters.index(fullString.startIndex, offsetBy: fromIndex) let endIndex = fullString.characters.index(startIndex, offsetBy: subStringSize) let subStringRange = startIndex..<endIndex return subStringRange } 

这个函数是非常明显的 – 你传入一个string(fullString),这个string的索引是子string的起始位置(fromIndex),以及这个子string的大小(subStringSize)。

例:

 let greeting = "Hi, my name is Nathaniel" let getName = greeting[getSubStringRange(fullString: greeting, fromIndex: 15, subStringSize: 9)] print("Name: \(getName)") 

– >印刷品:“名称:纳撒尼尔”