https://developer.apple.com/videos/play/wwdc2017/402/
Swift4の更新情報
□アクセス制御
private
extension からのアクセス不可なので fileprivate を使う。(Swift3)。
→ SE-0169: Improve Interaction Between Private Declarations and Extensions
Swift4 は、privateのままで使える。
SE-0156: Class and Subtype Existentials
□Cocoa Idioms
下記など。紹介は省略し、別セッション(202 What's New in Foundation)で解説。
KeyPaths, Archival & Serialization, Encoder
SE-0161 Smart KeyPaths: Better Key-Value Coding for Swift SE-0166 Swift Archival & Serialization
SE-0167 Swift Encoders
□ソース互換性
Swift 3.2のソースをSwift4 でほとんどそのままコンパイル可能
移行ツールあり
ひとつのプロジェクトでターゲットごとに3.2/4 の切り替え可能
Package Support Swift Versionを記述
□ビルドの高速化、バイナリの効率化
New Build Systemを選択可能
Precompiled Header
Shared Build
Indexing While Building
COW Existential Buffers = COW(copy-on-write)
Faster Generic Code
Smaller Binaries
Unused Conformance Removal
@objc inference
□String
Unicode合成文字の比較
charactersカウンティング
charactesのコレクションをString自身がもつ
Owner Reference Count (Substring
String(_:Substring) copies the buffer
複数行文字列 = """
□New Generics
associatedtype
subscripts partioal range
□Standard Library の新機能
多数。詳細説明なし。
□Exclusive Access to memory
Ownership