前言
隨著WWDC 2016的召開,蘋果正式發(fā)布了Swift 3.0 Preview 1盯串,這是蘋果Swift 3語言的首個(gè)穩(wěn)定開發(fā)者預(yù)覽版。蘋果在其Swift.org官方博客中稱,Preview 1版本比代碼庫中打包的Snapshot版本穩(wěn)定很多攀操。
今天我翻譯一下Swift 3.0 Preview
1版本更新內(nèi)容凯正,能力有限翻譯不到位的地方敬請(qǐng)諒解毙玻,如果有能力的同學(xué)可以自己查看官方英文版本。
地址:https://swift.org/blog/swift-3-0-preview-1-released/
我的博客地址:http://www.liangkun.info
更新內(nèi)容
中文版本:
· ? ? ? SE-0002: 刪除currying的func聲明語法
· ? ? ? SE-0003: 函數(shù)參數(shù)中不再使用var關(guān)鍵字
· ? ? ? SE-0004: 移除自增運(yùn)算符++和自減運(yùn)算符—
· ? ? ? SE-0005: 將Objective-C的API更好地接入到Swift中
· ? ? ? SE-0006: 將API指南應(yīng)用于標(biāo)準(zhǔn)庫中
· ? ? ? SE-0007: 移除C語言風(fēng)格的for循環(huán)(條件與增量下)
· ? ? ? SE-0008: 為可選序列增加一個(gè)Lazy的flatMap
· ? ? ? SE-0016: 添加構(gòu)造函數(shù)Int和UInt進(jìn)行UnsafePointer和UnsafeMutablePointer之間的轉(zhuǎn)換
· ? ? ? SE-0017: 使用UnsafePointer時(shí)廊散,修改Unmanaged
· ? ? ? SE-0019: Swift增加Testing
· ? ? ? SE-0023: Swift API設(shè)計(jì)指南
· ? ? ? SE-0028: 更新Swift的debug標(biāo)識(shí)符(例如:__FILE__等)
· ? ? ? SE-0029: 從函數(shù)應(yīng)用中桑滩,移除“tuple splat”表達(dá)形式
· ? ? ? SE-0031: 調(diào)整inout聲明的類型修飾
· ? ? ? SE-0032: SequenceType添加first(where:)方法
· ? ? ? SE-0033: 導(dǎo)入Objective-C的常量作為Swift類型
· ? ? ? SE-0034: 消除行控制的Debug標(biāo)識(shí)符聲明的歧義
· ? ? ? SE-0037: 注釋和操作符之間的交互
· ? ? ? SE-0039: 使Playground字面量現(xiàn)代化(Modernizing Playground Literals)
· ? ? ? SE-0040: 用冒號(hào)屬性參數(shù)替換等號(hào)
· ? ? ? SE-0043: 聲明變量時(shí)可以使用case標(biāo)識(shí)符
· ? ? ? SE-0044: 導(dǎo)入成員
· ? ? ? SE-0046: 函數(shù)的所有參數(shù)聲明方式要一致性,包括第一個(gè)參數(shù)聲明方式
· ? ? ? SE-0047: 默認(rèn)在非Void函數(shù)返回類型下允睹,返回結(jié)果未使用時(shí)會(huì)有警告
· ? ? ? SE-0048: 泛型類型別名
· ? ? ? SE-0049: 將聲明式@noescape與@autoclosure改為類型屬性
· ? ? ? SE-0053: 從函數(shù)參數(shù)中移除let
· ? ? ? SE-0054: 廢棄ImplicitlyUnwrappedOptional類型
· ? ? ? SE-0055: 明確不安全的Nullability指針使用Optional
· ? ? ? SE-0057: 導(dǎo)入Ovjective-C的輕量級(jí)泛型
· ? ? ? SE-0059: 更新API命名原則和重寫的Set API
· ? ? ? SE-0061: 為autoreleasepool()添加通用結(jié)果和錯(cuò)誤處理
· ? ? ? SE-0062: 引用Objective-C的關(guān)鍵路徑
· ? ? ? SE-0064: 引用Objective-C的getters和setters的屬性選擇器
· ? ? ? SE-0065: 一種新的模型 Collections和Indices
· ? ? ? SE-0066: 規(guī)范函數(shù)類型必須使用括號(hào)
· ? ? ? SE-0069: 可變性和基礎(chǔ)值類型
· ? ? ? SE-0070: 只在Objective-C下制定的Optional要求
· ? ? ? SE-0071: 允許成員引用使用most關(guān)鍵字
· ? ? ? SE-0085: 軟件包管理器命令名稱
· ? ? ? SE-0094: 為stdlib標(biāo)準(zhǔn)庫添加sequence(first:next:) 和sequence(state:next:)
英文版本:
· ? ? ? SE-0002: Removing currying func declaration syntax
· ? ? ? SE-0003: Removing var from Function Parameters
· ? ? ? SE-0004: Remove the ++ and -- operators
· ? ? ? SE-0005: Better Translation of Objective-C APIs Into Swift
· ? ? ? SE-0006: Apply API Guidelines to the Standard Library
· ? ? ? SE-0007: Remove C-style for-loops with conditions and incrementers
· ? ? ? SE-0008: Add a Lazy flatMap for Sequences of Optionals
· ? ? ? SE-0016: Adding initializers to Int and UInt to convert from UnsafePointer and UnsafeMutablePointer
· ? ? ? SE-0017: Change Unmanaged to use UnsafePointer
· ? ? ? SE-0019: Swift Testing
· ? ? ? SE-0023: API Design Guidelines
· ? ? ? SE-0028: Modernizing Swift’s Debugging Identifiers (__FILE__, etc)
· ? ? ? SE-0029: Remove implicit tuple splat behavior from function applications
· ? ? ? SE-0031: Adjusting inout Declarations for Type Decoration
· ? ? ? SE-0032: Add first(where:) method to SequenceType
· ? ? ? SE-0033: Import Objective-C Constants as Swift Types
· ? ? ? SE-0034: Disambiguating Line Control Statements from Debugging Identifiers
· ? ? ? SE-0037: Clarify interaction between comments & operators
· ? ? ? SE-0039: Modernizing Playground Literals
· ? ? ? SE-0040: Replacing Equal Signs with Colons For Attribute Arguments
· ? ? ? SE-0043: Declare variables in ‘case’ labels with multiple patterns
· ? ? ? SE-0044: Import as Member
· ? ? ? SE-0046: Establish consistent label behavior across all parameters including first labels
· ? ? ? SE-0047: Defaulting non-Void functions so they warn on unused results
· ? ? ? SE-0048: Generic Type Aliases
· ? ? ? SE-0049: Move @noescape and @autoclosure to be type attributes
· ? ? ? SE-0053: Remove explicit use of let from Function Parameters
· ? ? ? SE-0054: Abolish ImplicitlyUnwrappedOptional type
· ? ? ? SE-0055: Make unsafe pointer nullability explicit using Optional
· ? ? ? SE-0057: Importing Objective-C Lightweight Generics
· ? ? ? SE-0059: Update API Naming Guidelines and Rewrite Set APIs Accordingly
· ? ? ? SE-0061: Add Generic Result and Error Handling to autoreleasepool()
· ? ? ? SE-0062: Referencing Objective-C key-paths
· ? ? ? SE-0064: Referencing the Objective-C selector of property getters and setters
· ? ? ? SE-0065: A New Model For Collections and Indices
· ? ? ? SE-0066: Standardize function type argument syntax to require parentheses
· ? ? ? SE-0069: Mutability and Foundation Value Types
· ? ? ? SE-0070: Make Optional Requirements Objective-C-only
· ? ? ? SE-0071: Allow (most) keywords in member references
· ? ? ? SE-0085: Package Manager Command Names
· ? ? ? SE-0094: Add sequence(first:next:) and sequence(state:next:) to the stdlib
下載
Apple (Xcode)
Swift 3.0 已經(jīng)集成在Xcode8 beta 1里面运准。
下載地址:https://developer.apple.com/xcode/download
Linux (Ubuntu 14.04 and Ubuntu 15.10)
為Ubuntu14.04和Ubuntu15.10提供的二進(jìn)制文件下載地址:
https://swift.org/download/
文檔
Swift 3.0的《The Swift?Programming Language》現(xiàn)在已經(jīng)可以閱讀了,地址:https://swift.org/documentation/#the-swift-programming-language
你也可以在Apple的 iBooks?Store里面閱讀缭受,地址:
https://itunes.apple.com/us/book/the-swift-programming-language/id1002622538?mt=11
遷移到Swift 3
Swift 3與Swift 2.2.1在代碼上變化極大胁澳,包含了許多語法優(yōu)化與更新,但在Objective-C
API接入Swift的方式上也有巨大的變化( SE-0005 )贯涎,請(qǐng)參見 遷移指南來查看遷移到Swift 3的指南與技巧