2
誰能告訴我爲什麼下面的代碼在Swift 2中工作,但在Swift 3中出現某種程度的中斷?在Swift 3中創建封閉的範圍不起作用
let range: Range = 0...2
然而,它可以簡單地這樣做
let range: Range = 0..<3
任何固定知道什麼是這背後的原因是什麼?
誰能告訴我爲什麼下面的代碼在Swift 2中工作,但在Swift 3中出現某種程度的中斷?在Swift 3中創建封閉的範圍不起作用
let range: Range = 0...2
然而,它可以簡單地這樣做
let range: Range = 0..<3
任何固定知道什麼是這背後的原因是什麼?
運算符...
和..<
用於在Swift 2.x中生成相同類型的Range
。現在,他們生產不同類型(migration guide):
Range
CountableRange
ClosedRange
CountableClosedRange
在第一分配變更類型ClosedRange
應該解決這個問題。更重要的是,讓斯威夫特推斷你的類型:
let range = 0...2
http://stackoverflow.com/questions/36157777/initstartend-is-deprecated-it-will-be-removed-in-swift-3-use -o- –
顯式類型註釋的廢話很好的例子。如果編譯器需要幫助,它會告訴你(例如*模糊地使用某些東西...... *)。 – vadian