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