參考資料與鏈接https://www.cnswift.org
常量和變量
聲明常量和變量
let maximumNumberOfLoginAttepts = 10
var currentLofinAttemt = 0
var x = 0.0 , y = 0.0 , z = 0.0
//你可以在一行中聲明多個變量或常量,用逗號分隔
類型標注
var welcomeMessage : String
var red , green , blue : Double
//Swift可以推斷出這個常量和變量的類型,并不需要經(jīng)常使用類型標注
命名常量和變量
常量和變量的名字幾乎可以使用任何字符,甚至包括Unicode字符
let π = 3.14159
let hello = "Hello ,World"
let ?? = "dogcow"
//常量和變量的名字不能包含空白字符、數(shù)學(xué)符號、箭頭、保留的(或者無效的)Unicode 碼位、連線和制表符。
//也不能以數(shù)字開頭,盡管數(shù)字幾乎可以使用在名字其他的任何地方。
注意
避免使用關(guān)鍵字作為名字.
輸出常量和變量
print(friendlyWelcome)
//Swift使用字符串插值的方式,將常量或變量名放入圓括號中并在括號前使用反斜杠將其轉(zhuǎn)義
print("The current value of friendlyWelcome is \(friendWelcome)")
類型安全和類型推斷
Swift 是類型安全的,他在編譯代碼的時候會進行類型檢查,任何不匹配的類型都會被標記為錯誤。這會幫助你在開發(fā)階段更早的發(fā)現(xiàn)并修復(fù)錯誤。
let pi = 3.14159
//Swift 在推斷浮點值的時候始終會選擇 Double (而不是 Float )
數(shù)值型字面量
- 一個十進制數(shù),沒有前綴
- 一個二進制數(shù),前綴是 0b
- 一個八進制數(shù),前綴是 0o
- 一個十六進制數(shù),前綴是 0x
let decimalInteger = 17
let binaryInteger = 0b10001
let octalInteger = 0o21
let hexadecimalInteger = 0x11
//關(guān)于浮點字面量的解釋,請自行查閱參考資料
整數(shù)和浮點數(shù)都可以添加額外的零或者添加下劃線來增加代碼的可讀性
let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1
整數(shù)轉(zhuǎn)換
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)
//類型不同,不能直接相加,需要進行轉(zhuǎn)換
整數(shù)和浮點數(shù)轉(zhuǎn)換
let integerPi = Int(pi)
//在用浮點數(shù)初始化一個新的整數(shù)類型的時候,數(shù)值會被截斷。也就是說 4.75 會變成 4 , -3.9 會變?yōu)?-3
注意
字面量 3 可以直接和字面量 0.14159 相加,因為數(shù)字字面量本身沒有明確的類型。它們的類型只有在編譯器需要計算的時候才會被推測出來。
類型別名
typealias AutoSample = Int8
//當你根據(jù)上下文的語境想要給類型一個更有意義的名字的時候,類型別名會非常高效,例如處理外部資源中特定長度的數(shù)據(jù)時
//一旦為類型創(chuàng)建了一個別名,你就可以在任何使用原始名字的地方使用這個別名。
布爾值
let orangesAreOrange = true
let turnipsAreDelicious = false
元組
元組內(nèi)的值可以是任何類型,而且可以不必是同一類型
let http404Error = (404 , "Not Found")
將一個元組的內(nèi)容分解成單獨的常量或變量
let (statusCode , statusMessage) = http404Error
print("The StatusCode is \(statusCode)")
print("The StatusMessage is \(statusMessage)")
//不需要的數(shù)據(jù)可以用下劃線代替
let (justTheStatusCode , _) = http404Error
print("The justTheStatusCode is \(justTheStatusCode)")
//索引數(shù)字訪問單獨元素
print("The StatusCode is \(http404Error.0)")
print("The StatusMessage is \(http404Error.1)")
//給單個元素命名
let http200Status = (statusCode : 200 , description : "OK")
print("The statusCode is \(http200Status.statusCode)")
print("The description is \(http200Status.description)")