2016-03-23 15 views
18

Xcode 7.3に更新すると、私のプロジェクトに警告が表示されます。'++'は廃止されました:Swift 3で削除されます

'++は' 廃止されました:それは、スウィフト3

にこの警告を修正するすべてのアイデアを削除されますか?今後++--が廃止される理由はありますか?

+0

確かに重複しています...この質問は_beta_についてですが(2月3日付)、これは_official release_(3月23日、Xcode 7.3がStoreにヒットした日)です。そのような場合に1人はいますか? –

+1

@NicolasMiariそれを閉じて投票してください。まだXcode 7.3ですが、質問を編集して "beta"を削除することしかできません。 – Sulthan

答えて

42

Swift 2.2以降、代わりに+= 1または-= 1を使用してください。

そしてスウィフトの進化を見た後、これらの演算子を除去するために、いくつかの理由があります。

  1. は、これらの演算子は、最初のプログラミング言語としてスウィフトを学ぶための負担を増やす - またはその他の場合、あなたドンこれらの演算子はすでに別の言語から分かっています。

  2. それらの表現の利点は、最小である - X ++ X + = 1

  3. スウィフトが既にその中にCから外れ=、+ =や他の割り当てのような操作のために(voidを返すよりもはるかに短いありません理由の数)。これらの演算子は、そのモデルと矛盾しています。

  4. Swiftは、他の言語のCスタイルのforループで++ iを使用する一般的な理由の多くを排除する強力な機能を備えているため、よく記述されたSwiftコードではあまり使用されません。

  5. これらの演算子の結果値を実際に使用するコードは、コードの読者/保守者にとってしばしば混乱し、微妙です。かわいいかもしれないが、理解するのが難しい "過度にトリッキーな"コードを奨励します。

  6. Swiftはよく定義された評価順序を持っていますが、それに依存するコード(foo(++ a、a ++)のような)は明確に定義されていても望ましくありません。

  7. これらの演算子は、比較的少数の型に適用できます。整数型浮動小数点型スカラー、イテレータのような概念です。彼らは最後に、これらのメトリック失敗

など複素数、行列には​​適用されません。「我々はすでにこれらを持っていなかった場合、我々はスウィフト3に追加しますか?」

詳細はSwift evolutionをご覧ください。

+8

'x + = 1がx ++を表す場合'; '++ x'ならば? –

+4

私はソースまたは番号の証拠を見たい1,5,6 – Zuzlx

+0

ばかげたアイデア。スウィフトはすべての種類のブランドの新しい構文砂糖でいっぱいですが、古典的な...ナンセンスを取り除いています –

関連する問題