2016-10-01 4 views
2

Swift 2で以下のコードが動作する理由は誰にも分かりますが、何とかSwift 3で壊れますか?それは単に誰もがこの背後にある理由が何であるかを知っているこのSwift 3でクローズドレンジを作成していない

let range: Range = 0..<3 

を行うことによって固定することができる。しかし

let range: Range = 0...2 

+0

http://stackoverflow.com/questions/36157777/initstartend-is-deprecated-it-will-be-removed-in-swift-3-use:いっそのこと、スウィフトはあなたのための型を推論しましょう-the-o –

+1

明示的な型のナンセンスアノテーションの非常に良い例です。コンパイラが助けを必要とする場合(例えば、*何かのあいまいな使用... *)、あなたに伝えます。 – vadian

答えて

4

オペレータ...および..<は、Swift 2.xで同じタイプのRangeを生成するために使用されました。問題を修正する必要がありますClosedRangeに最初の割り当てタイプを変更する

  • Range
  • CountableRange
  • ClosedRange
  • CountableClosedRange

:今、彼らは、異なるタイプ(migration guide)を生成します。

let range = 0...2 
関連する問題