swift3.0の変更点
・カリー化関数宣言構文を削除
引数を2つ以上持ったメソッドがあれば怪しいので注意⚠︎
・関数のパラメータからvarを削除
card(1, suit: "♠") ←これがダメになる
func card(rank: Int, suit: Character) { }
card(rank:1, suit: "♠") ←swift3.0
func card(rank: Int, suit: Character) { }
・++ -- 演算子を削除
for (AAA in 1...5) {
// 処理
i++ ←これとかがダメになる
++i ←これとかがダメになる
}
for (AAA in 1...5) {
// 処理
i += 1 ←swift3.0
}
・Objective-CのAPIをSwift用に最適化
・標準ライブラリへAPIのガイドラインを適用
・Objective-CのコンテンツをSwiftのタイプとしてインポート
・APIの設計ガイドライン
言葉のまんま
・C-Styleのfor文の削除
for文には...を使ってね
・オプショナル配列のためのLazyflatMapを追加【保留】
・UnsafePointerとUnsafeMutablePointerから変換するためのInt uintに初期化子を追加します【保留】
・Swiftのテスト
Package Managerを使用して品質向上が測れます
使ってみないとなんとも
・暗黙的なタプルスプラットの動作を削除
言葉のまんま
・タイプの装飾のためのinout宣言を調整
inoutは参照のみ
func foo(inout a:Int, inout b:Int) ←これとかがダメになる
func foo(a: inout Int, inout b:Int) ←swift3.0
+++++++++++++++++++++++++++++++++++++
その他
+++++++++++++++++++++++++++++++++++++
・コメントの表記ルールを明確に
・モダンなPlaygroundでのリテラル
・Attributesで=ではなく:を使うように
・複数のパターンの"case"のラベルの変数
・Memberのインポート
・最初のラベルを含むすべてのパラメータにわたって一貫したラベルの挙動を確立
・@noescape @autoclosure の移動
・Functionのパラメータからletの明示的な使用を削除
・ImplicitlyUnwrappedOptionalタイプを廃止
・安全でないポインタNULL値を許可するかどうかをオプションを使って明示的に
・Objective-C 軽量ジェネリックスのインポート
・APIガイドラインにしたがってSet APIの更新
・Generic Result と autoreleasepool()のエラーハンドリングを追加
・Objective-C selectorのgetter/setterの参照
・コレクションとインデックスの新しいモデル
・Mutability と Foundation の Value Types
・Objective-C専用のOptional要件作成
・(ほとんどの)メンバーの参照のキーワードを許可
・Swiftから完全に暗黙のブリッジ変換をなくします
<参考>