Swift
是一門開(kāi)發(fā)iOS
, macOS
, watchOS
和 tvOS
應(yīng)用的新語(yǔ)言。然而,如果你有 C
或者 Objective-C
開(kāi)發(fā)經(jīng)驗(yàn)的話,你會(huì)發(fā)現(xiàn) Swift
的很多內(nèi)容都是你熟悉的。 Swift
包含了 C
和 Objective-C
上所有基礎(chǔ)數(shù)據(jù)類型:Int
表示整型值; Double和 Float
表示浮點(diǎn)型值; Bool
是布爾型值; String
是文本型數(shù)據(jù)。
Swift
還提供了三個(gè)基本的集合類型,Array
,Set
和 Dictionary
。就像 C
語(yǔ)言一樣,Swift
使用變量來(lái)進(jìn)行存儲(chǔ)并通過(guò)變量名來(lái)關(guān)聯(lián)值。在 Swift
中,廣泛的使用著值不可變的變量,它們就是常量,而且比 C
語(yǔ)言的常量更強(qiáng)大。在 Swift
中,如果你要處理的值不需要改變,那使用常量可以讓你的代碼更加安全并且更清晰地表達(dá)你的意圖。 除了我們熟悉的類型,Swift
還增加了 Objective-C
中沒(méi)有的高階數(shù)據(jù)類型比如元組(Tuple)
。元組可以讓你創(chuàng)建或者傳遞一組數(shù)據(jù),比如作為函數(shù)的返回值時(shí),你可以用一個(gè)元組可以返回多個(gè)值。 Swift
還增加了可選(Optional)類型
,用于處理值缺失的情況。可選表示 “那兒有一個(gè)值,并且它等于 x ” 或者 “那兒沒(méi)有值” 。可選有點(diǎn)像在 Objective-C
中使用 nil ,但是它可以用在任何類型上,不僅僅是類。可選類型比 Objective-C
中的 nil指針更加安全也更具表現(xiàn)力,它是Swift
許多強(qiáng)大特性的重要組成部分。 Swift
是一門類型安全的語(yǔ)言,可選類型就是一個(gè)很好的例子。Swift
可以讓你清楚地知道值的類型。如果你的代碼期望得到一個(gè) String
,類型安全會(huì)阻止你不小心傳入一個(gè) Int
。同樣的,如果你的代碼期望得到一個(gè) String
,類型安全會(huì)阻止你意外傳入一個(gè)可選的 String
。你可以在開(kāi)發(fā)階段盡早發(fā)現(xiàn)并修正錯(cuò)誤。
常量和變量 常量和變量把一個(gè)名字(比如 maximumNumberOfLoginAttempts或者 welcomeMessage
)和一個(gè)指定類型的值(比如數(shù)字 10或者字符串 "Hello" )
關(guān)聯(lián)起來(lái)。常量的值一旦設(shè)定就不能改變,而變量的值可以隨意更改。
聲明常量和變量 常量和變量必須在使用前聲明,用 let
來(lái)聲明常量,用 var
來(lái)聲明變量。下面的例子展示了如何用常量和變量來(lái)記錄用戶嘗試登錄的次數(shù): let maximumNumberOfLoginAttempts = 10 var currentLoginAttempt = 0
這兩行代碼可以被理解為: “聲明一個(gè)名字是 maximumNumberOfLoginAttempts
的新常量,并給它一個(gè)值 10。然后,聲明一個(gè)名字是 currentLoginAttempt
的變量并將它的值初始化為 0。” 在這個(gè)例子中,允許的最大嘗試登錄次數(shù)被聲明為一個(gè)常量,因?yàn)檫@個(gè)值不會(huì)改變。當(dāng)前嘗試登錄次數(shù)被聲明為一個(gè)變量,因?yàn)槊看螄L試登錄失敗的時(shí)候都需要增加這個(gè)值。 你可以在一行中聲明多個(gè)常量或者多個(gè)變量,用逗號(hào)隔開(kāi): var x = 0.0, y = 0.0, z = 0.0
注意:如果你的代碼中有不需要改變的值,請(qǐng)使用 let
關(guān)鍵字將它聲明為常量。只將需要改變的值聲明為變量。
類型標(biāo)注 當(dāng)你聲明常量或者變量的時(shí)候可以加上類型標(biāo)注(type annotation)
,說(shuō)明常量或者變量中要存儲(chǔ)的值的類型。如果要添加類型標(biāo)注,需要在常量或者變量名后面加上一個(gè)冒號(hào)和空格,然后加上類型名稱。 這個(gè)例子給 welcomeMessage
變量添加了類型標(biāo)注,表示這個(gè)變量可以存儲(chǔ) String類型
的值: var welcomeMessage: String
聲明中的冒號(hào)代表著“是…類型”,所以這行代碼可以被理解為: “聲明一個(gè)類型為 String
,名字為 welcomeMessage
的變量。” “類型為 String”的意思是“可以存儲(chǔ)任意 String類型的值。” welcomeMessage變量
現(xiàn)在可以被設(shè)置成任意字符welcomeMessage = "Hello"
你可以在一行中定義多個(gè)同樣類型的變量,用逗號(hào)分割,并在最后一個(gè)變量名之后添加類型標(biāo)注: var red, green, blue: Double
注意:一般來(lái)說(shuō)你很少需要寫(xiě)類型標(biāo)注。如果你在聲明常量或者變量的時(shí)候賦了一個(gè)初始值,Swift可以推斷出這個(gè)常量或者變量的類型,請(qǐng)參考類型安全和類型推斷。在上面的例子中,沒(méi)有給 welcomeMessage
賦初始值,所以變量 welcomeMessage
的類型是通過(guò)一個(gè)類型標(biāo)注指定的,而不是通過(guò)初始值推斷的。
常量和變量的命名 你可以用任何你喜歡的字符作為常量和變量名,包括 Unicode
字符: `let π = 3.14159 let 你好 = “你好世界” let
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注