1.0 翻譯:numbbbbb, lyuka, JaySurplus 校對:lslxdx
2.0 翻譯+校對:xtymichael
2.1 翻譯:Prayer 校對:shanks,overtrue
2.2 校對:SketchK
3.0 校對:CMB,版本時間2016-09-13
3.0.1, 2016-11-11,shanks
4.0 校對:kemchenj
4.1 翻譯+校對:mylittleswift
本頁包含內(nèi)容:
Swift 是一門開發(fā) iOS, macOS, watchOS 和 tvOS 應用的新語言。然而,如果你有 C 或者 Objective-C 開發(fā)經(jīng)驗的話,你會發(fā)現(xiàn) Swift 的很多內(nèi)容都是你熟悉的。
Swift 包含了 C 和 Objective-C 上所有基礎數(shù)據(jù)類型,Int
表示整型值; Double
和 Float
表示浮點型值; Bool
是布爾型值;String
是文本型數(shù)據(jù)。 Swift 還提供了三個基本的集合類型,Array
、Set
和 Dictionary
,詳見集合類型。
就像 C 語言一樣,Swift 使用變量來進行存儲并通過變量名來關聯(lián)值。在 Swift 中,廣泛的使用著值不可變的變量,它們就是常量,而且比 C 語言的常量更強大。在 Swift 中,如果你要處理的值不需要改變,那使用常量可以讓你的代碼更加安全并且更清晰地表達你的意圖。
除了我們熟悉的類型,Swift 還增加了 Objective-C 中沒有的高階數(shù)據(jù)類型比如元組(Tuple)。元組可以讓你創(chuàng)建或者傳遞一組數(shù)據(jù),比如作為函數(shù)的返回值時,你可以用一個元組可以返回多個值。
Swift 還增加了可選(Optional)類型,用于處理值缺失的情況??蛇x表示 “那兒有一個值,并且它等于 x ” 或者 “那兒沒有值” ??蛇x有點像在 Objective-C 中使用 nil
,但是它可以用在任何類型上,不僅僅是類??蛇x類型比 Objective-C 中的 nil
指針更加安全也更具表現(xiàn)力,它是 Swift 許多強大特性的重要組成部分。
Swift 是一門類型安全的語言,這意味著 Swift 可以讓你清楚地知道值的類型。如果你的代碼需要一個 String
,類型安全會阻止你不小心傳入一個 Int
。同樣的,如果你的代碼需要一個 String
,類型安全會阻止你意外傳入一個可選的 String
。類型安全可以幫助你在開發(fā)階段盡早發(fā)現(xiàn)并修正錯誤。
常量和變量把一個名字(比如 maximumNumberOfLoginAttempts
或者 welcomeMessage
)和一個指定類型的值(比如數(shù)字 10
或者字符串 "Hello"
)關聯(lián)起來。常量的值一旦設定就不能改變,而變量的值可以隨意更改。
常量和變量必須在使用前聲明,用 let
來聲明常量,用 var
來聲明變量。下面的例子展示了如何用常量和變量來記錄用戶嘗試登錄的次數(shù):
let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0
這兩行代碼可以被理解為:
“聲明一個名字是 maximumNumberOfLoginAttempts
的新常量,并給它一個值 10
。然后,聲明一個名字是 currentLoginAttempt
的變量并將它的值初始化為 0
。”
在這個例子中,允許的最大嘗試登錄次數(shù)被聲明為一個常量,因為這個值不會改變。當前嘗試登錄次數(shù)被聲明為一個變量,因為每次嘗試登錄失敗的時候都需要增加這個值。
你可以在一行中聲明多個常量或者多個變量,用逗號隔開:
var x = 0.0, y = 0.0, z = 0.0
注意
如果你的代碼中有不需要改變的值,請使用
let
關鍵字將它聲明為常量。只將需要改變的值聲明為變量。
當你聲明常量或者變量的時候可以加上類型標注(type annotation),說明常量或者變量中要存儲的值的類型。如果要添加類型標注,需要在常量或者變量名后面加上一個冒號和空格,然后加上類型名稱。
這個例子給 welcomeMessage
變量添加了類型標注,表示這個變量可以存儲 String
類型的值:
var welcomeMessage: String
聲明中的冒號代表著“是...類型”,所以這行代碼可以被理解為:
“聲明一個類型為 String
,名字為 welcomeMessage
的變量。”
“類型為 String
”的意思是“可以存儲任意 String
類型的值。”
welcomeMessage
變量現(xiàn)在可以被設置成任意字符串:
welcomeMessage = "Hello"
你可以在一行中定義多個同樣類型的變量,用逗號分割,并在最后一個變量名之后添加類型標注:
var red, green, blue: Double
注意
一般來說你很少需要寫類型標注。如果你在聲明常量或者變量的時候賦了一個初始值,Swift 可以推斷出這個常量或者變量的類型,請參考類型安全和類型推斷。在上面的例子中,沒有給
welcomeMessage
賦初始值,所以變量welcomeMessage
的類型是通過一個類型標注指定的,而不是通過初始值推斷的。
常量和變量名可以包含任何字符,包括 Unicode 字符:
let π = 3.14159
let 你好 = "你好世界"
let