2016-10-01 45 views
2

誰能告訴我爲什麼下面的代碼在Swift 2中工作,但在Swift 3中出現某種程度的中斷?在Swift 3中創建封閉的範圍不起作用

let range: Range = 0...2 

然而,它可以簡單地這樣做

let range: Range = 0..<3 

任何固定知道什麼是這背後的原因是什麼?

+0

http://stackoverflow.com/questions/36157777/initstartend-is-deprecated-it-will-be-removed-in-swift-3-use -o- –

+1

顯式類型註釋的廢話很好的例子。如果編譯器需要幫助,它會告訴你(例如*模糊地使用某些東西...... *)。 – vadian

回答

4

運算符.....<用於在Swift 2.x中生成相同類型的Range。現在,他們生產不同類型(migration guide):

  • Range
  • CountableRange
  • ClosedRange
  • CountableClosedRange

在第一分配變更類型ClosedRange應該解決這個問題。更重要的是,讓斯威夫特推斷你的類型:

let range = 0...2