翻譯社在Swift說話的世界裡仍延續這個傳統,但更簡化為利用 let 樞紐字去設定常數(constant variable)。Swift說話利用雷同C#或Javascript的var界說變數,但特征又不盡相同,Swift不會直接指派初始值給變數,亦即變數不會有預設值,所以利用var變數之前必須先初始化,否則會産生編譯期間的錯誤。

曩昔Cocoa(以及Cocoa Touch)的架構老是被分成兩種版本,一種是可變的(mutable),也就是可以在履行期間(runtime)改變;另外一種是不可變的(immutable),其初始值弗成改變,例如NSArray與NSMutableArray就是陣列的兩種版本。

至於可變的(Mutable)物件則利用 var 關鍵字。

在Cocoa與Cocoa Touch的情況下,許多共用的類物都放在Foundation Kit庫下,這些種別包括了NSString 字串庫(利用 Unicode),還有鸠合類別 NSArray 與 NSDictionary翻譯Objective-C 供給了語法糖(syntactic sugar)的體式格局讓這些物件可以整合在統一個語言裡。例如NSString之間合併的表示法以下:

當開辟人員添加 Swift 檔案到現有的 Objective-C 運用程式時,Xcode 會主動建立這些標頭檔翻譯例如,一個 Swift 知名的種別 "MyClass" 可用於 Objective-C 的方式 #import "MyClass-Swift.h".[14]

為了爭奪大量的開辟人員並反複利用已存在的程式碼,Xcode 6 答應在 app target 導入 Objective-C 檔案供給 Swift 利用,透過 Objective-C 的橋接標頭檔(bridging header)來表露給 Swift。

記憶體經管[編輯]

Swift在 Mac OS 和 iOS 平台可以和 Objective-C 利用相同的履行時期(runtime)。這意味著Swift 程式可以履行於今朝已存在的平台之上,包含 iOS 6 和 OS X 10.8 都可以履行Swift的程式.[13] 更重要的翻譯社 Swift 和 Objective-C 的程式碼可並存於單一程式內, 這類延長就猶如 C 和 C++ 的關係一樣。

let  = ["新": 67, "青": 8, "玉": 33, "小小": 25]
for (名字, ) in  {
  println("\(名字)是\(歲) 歲。")
}

相幹條目[編纂]

參考資料[編纂]

  1. ^ https://swift.org/download/#releases
  2. ^ https://swift.org/download/#previews
  3. ^ "Apple will open-source its Swift programming language"
  4. ^ Lattner, Chris. Chris Lattner's Homepage. Chris Lattner. June 3翻譯社 2014 [June 3, 2014]. I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure翻譯社 with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell翻譯社 Ruby翻譯社 Python, C#翻譯社 CLU, and far too many others to list. 
  5. ^ Building assert() in Swift, Part 2: __FILE__ and __LINE__ - Swift Blog -. Apple Developer. [26 September 2014]. Swift borrows a clever feature from the D language: these identifiers expand to the location of the caller when evaluated in a default argument list. 
  6. ^ 6.0 6.1 Apple announces Swift翻譯社 a new programming language for iOS. 
  7. ^ 蘋果新程式說話Swift僅耗時4年完成開發
  8. ^ "Swift 2.0"
  9. ^ [1]
  10. ^ [2]
  11. ^ Weber, Harrison. Apple announces 『Swift,』 a new programming language for OS X & iOS. VentureBeat. June 2, 2014. 
  12. ^ "Strings and Characters", Apple Inc.
  13. ^ "Do Swift-based apps work on OS X 10.9/iOS 7 and lower?"翻譯社 StackOverflow
  14. ^ "Swift and Objective-C in the Same Project"翻譯社 Apple Inc.
  15. ^ 范凱robbin
  16. ^ The Swift Programming Language.

2010年7月,蘋果開辟者東西部分總監克里斯·拉特納入手下手著手 Swift 程式語言的設計工作,以一年時候,完成根基架構後,他帶領了一個設計團隊大力介入其中翻譯Swift大約歷經4年的開發期,2014年6月頒發翻譯

Swift是一種支援多編程範式和編譯式的編程說話,是用來撰寫macOS/OS X、iOS、watch OS和tvOS的語言之一[6]翻譯 2014年,其在蘋果開辟者年會(WWDC)發布翻譯設計Swift時,蘋果公司成心讓Swift與Objective-C共存在蘋果公司的功課系統上[6]
println("Hello翻譯社 world")
print("Hello, world") /*Swift 2.0 之後不再使用println,改利用print*/

可使用Unicode字元,例如在文字內容有分歧說話的文字時就可以安心添加,沒必要擔心呈現沒法解讀的亂碼:

var implicitInteger = 70
var implicitDouble = 70.0
var explicitDouble: Double = 70

用 let 宣告常數的方式以下:

[8]

2015年12月3日,蘋果宣布開源swift,並支援Linux,蘋果在新網站swift.org和託管網站Github上開源了swift,但蘋果的app store並不支援開源的swift,只支援蘋果官方的swift版本,官方版本會在新網站swift.org上定期與開源版本同步翻譯[9][10]

2015年6月8日,蘋果於WWDC2015上宣布,Swift將開放原始碼,包羅編譯器和標準庫。

Xcode的除錯機制針對Swift說話提供REPL(Read-Eval-Print Loop, 這是源自emacs的術語)情況,可以行使Swift語法來評估或與其他程式互動,使Swift編程具有類似Python與Ruby互動性介面(Interactive Shell)。

[12]

型別與變數[編纂]

[11]

Swift被簡單的形容為 「沒有C的Objective-C」(Objective-C without the C)。同時,它供應了雷同C++、C#的定名空間(namespace)、泛型(generic)、運算元重載(operator overloading)。

Swift打消了Objective-C的指標及其他不安全存取的使用,並捨棄Objective C初期套用Smalltalk之語法,周全改為句點默示法(dot-notation)翻譯同許多手稿說話一樣,Swift可以揣摸變數型別(var翻譯社 variant)。

歷史[編輯]

Swift周全利用主動參照計數(ARC)來管理記憶體,庖代曩昔Objective C的垃圾收受接管功能翻譯過去在Objective-C中,強參照(strong reference)即為非ARC中的retain,而弱參照(weak reference)即為非ARC中的assign。為了解決迴圈參照的問題,Swift供應unowned,不克不及設定為optional types,不能加上問號(?)或驚嘆號(!)。

let numberOfApples = 3
let numberOfOranges = 5
let appleSummary = "I have \(numberOfApples) apples."
let fruitSummary = "I have \(numberOfApples + numberOfOranges) pieces of fruit."

Swift不支援隱式類型轉換(implicitly casting),是以數與字串之間要以顯式類型轉換(Explicitly casting):

JavaEye的創始人Robbin頒發定見:「對程式設計師來講,熟悉Swift語法也不外一天時間足夠了。樞紐是要供應高階資料類型,簡化Cocoa種別庫,不然用不消Swift都沒區別翻譯[15]

除錯和其他元素[編纂]

長達600多頁的 The Swift Programming Language 可以在iBooks免費下載。[16]

拉特納本人強調,Playgrounds很大水平是遭到布雷特·維克多(Bret Victor)理念的啟發。Xcode Playgrounds功能是Swift為蘋果開辟對象帶來的最大立異,該功能供應壯大的互動效果,能讓Swift源代碼在撰寫過程當中能即時顯示出其履行結果。[7]

蘋果傳播鼓吹Swift的特點是:快速、現代、平安、互動,而且顯明優於Objective-C說話。Swift以LLVM編譯,可使用現有的Cocoa和Cocoa Touch框架。

在Swift裡, 字串的積累可以用加法(+)運算元作為第一級公民(First-class citizen)的體例直接完成, 上述的例子可以簡化為

特點[編輯]

宣佈Optional只需要在類型後面加上問號(?)便可。

為了便利使用,Swift還供給Optional的界說來宣佈nil-free references。一旦var變數宣佈為Optional的,其初始值就會被預設為nil翻譯Optional素質上是enum,有界說None和Some兩種類型,nil等于Optional.None。 還有一個新的運算元,「延續三個等於」(===)被用來判定常數或變數之間是不是為同一物件之實例(instance)。別的,case後面都需要有可執行的代碼(C或C++可連續利用多個case而不需要額外的代碼),不然會發生編譯毛病翻譯

  • 變數和常數都要被初始化,並且陣列(array)的邊界也要確認清晰。

    雷同 Objective-C的地方[編輯]

    • 根基數值型別(numeric types)大致不異 (例如Int翻譯社 UInt翻譯社 Float, Double)
    • 大量的C 運算元被移出Swift, 但又引入一些新運算元。
    • 大括號被用於群組陳說(group statements)。
    • 字串全方面支援 Unicode,某些字元乃至可以成為說話的名稱。
    • 中括號([], Square brackets)用於陣列的暗示, 宣告陣例以後, 可以指派索引值(index)來進行元素(element)之存取。
    • 指派(Assignments)不再回傳值,正確寫法是 if (i==0) ,一般輕易誤寫成 if (i=0) 會造成編譯時期毛病(compile-time error)翻譯
    • switch 的區塊內不需要再使用 break 論述句。
    • 註解方式 /* ... */ 可以為巢狀(nested)註解,意思是指註解內可以再有註解,曩昔有些C或C++編譯器不支援巢狀註解。
    • 標頭檔(Header files)不再需要。
    • 許多C說話家族曩昔惡名昭彰的怪語法(error-prone behaviors)也被改變:
      • 不再存在指標。
      • 變數之賦值利用等於符號翻譯社 但比力則利用「連氣兒兩個等於」(==)運算元。
      • 函式為第一等類型(first-class object),這意味著函式可以作為其他函式的參數與返回值翻譯
      • 運算元可在種別內重新界說 (運算元重載),可以生成新的運算元。
      • 強型別(strong type)
      • 類型推論或隱含類型(Type inference)
      • 支援泛型編程。
      • 控制陳說(control statement), for, while翻譯社 if, switch 與Ojbective-C都十分近似翻譯社 但有延長功能, 像是 for in 用於荟萃(collection)的輪詢,switch 還可以接管非整數的cases條件值, 諸如斯類翻譯

      分歧於 Objective-C的地方[編輯]

      • 陳說句(statement)不須再利用分號(;)做為竣事,但分號還是可以在一行之內作為兩個以上陳說的分隔。
      • 溢位(overflows)的問題翻譯C說話沒有強制整數型別(signed integers)的界線,經常在履行時間産生問題翻譯Swift可以透過整數型其它max或min屬性取得最大值或最小值翻譯

    計議[編輯]



    以下文章來自: https://zh.wikipedia.org/wiki/Swift_(%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80)有關翻譯的問題歡迎諮詢天成翻譯社
  • arrow
    arrow
      創作者介紹
      創作者 travistv21n 的頭像
      travistv21n

      travistv21n@outlook.com

      travistv21n 發表在 痞客邦 留言(0) 人氣()