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

mah*_*ega 72 swift xcode7.3

我正在使用以下代码:

var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0)
Run Code Online (Sandbox Code Playgroud)

自从更新到Xcode 7.3(Swift 2.2)后,我得到以下提示:

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

对于我来说,如何使用"..."运算符正确地"翻译"它并不清楚.

Sco*_*son 88

你应该简单地写

var continousDigitsRange1:Range<Int> = 0..<0
Run Code Online (Sandbox Code Playgroud)

或者如果你想变得更简单

var continousDigitsRange = 0..<0
Run Code Online (Sandbox Code Playgroud)

  • 你是真正的MVP (2认同)

bmi*_*tte 35

另外值得注意的是,对于substringWithRangeString,您现在可以使用

let theString = "Hello, how are you"
let range = theString.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end)
theString.substringWithRange(range)
Run Code Online (Sandbox Code Playgroud)


sol*_*oid 8

闭区域运算符(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
Run Code Online (Sandbox Code Playgroud)