swift中文文檔gitbooks地址:https://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/
1、常量與變量的定義
在swift中,我們用let來定義一個常量,用var來定義一個變量,例如:
發現沒有,我們不需要爲其指定類型,編譯器會根據變量的值來確定變量的類型;當然,如果沒有給變量設定初始值,就應該聲明變量的類型,如:
當然,後面的分號可以不要,不過我還是給加上了,這樣代碼多了,結構會清晰些。。。Swift中可以使用幾乎任何字符來作爲常量和變量名,包括Unicode,但是名稱中不能含有數學符號,箭頭,無效的Unicode,橫線-和製表符,且不能以數字開頭,儘管數字可以包含在名稱裏。一旦完成了聲明,就不能再次聲明相同名稱的變量或常量,或者改變它的類型。例如:
2、輸出常量與變量
Swift使用 println()函數來輸出常量或變量,當然print函數也一樣,println帶換行,例如:
println函數還可以格式化輸出一些日誌信息,就像是Cocoa中NSLog函數的行爲一樣,可以包括一些常量和變量本身。Swift在字符串中插入變量名作爲佔位符,通過\()來表示,例如:
輸出:我是adc
3、Int類型和UInt類型
我們知道在不同的平臺下,int類型的長度不同,在OC中,我們可以用NSInteger來表示一個int類型,它可以根據所處平臺來定義int的長度
在Switf中,我們可以用Int來定義一個int類型,一般來說,編程人員在寫代碼時不需要選擇整數的位數,Swift提供了一種額外的整數類型Int,是和當前機器環境的字長相同的整數位數在32位機器上就表示32位長度,在64位機器上就表示64位長度。Swift還提供了一種無符號類型UInt,同理也是和當前機器環境的字長相等。
Swift是一種類型安全的語言。類型安全就是說在編程的時候需要弄清楚變量的類型。如果您的代碼部分需要一個字符串,你不能錯誤地傳遞一個整數類型。
因爲Swift是類型安全的,它會在編譯的時候就檢查你的代碼,任何類型不匹配時都會報錯。這使得編程人員能夠儘快捕獲並儘可能早地在開發過程中修正錯誤。
類型檢查可以在使用不同類型的值時幫助避免錯誤。但是,這並不意味着你必須指定每一個常量和變量所聲明的類型。如果不指定你需要的類型,Swift使用類型推導來指定出相應的類型。類型推導使編譯器在編譯的時候通過你提供的初始化值自動推導出特定的表達式的類型。
類型推導使Swift比起C或Objective-C只需要更少的類型聲明語句。常量和變量仍然顯式類型,但大部分指定其類型的工作Swift已經爲你完成了。
4、類型別名我們在其他語言比如C/C++、OC中經常會用到typedef,用來爲一種數據類型定義一個新名字,在Swift中用typealias來現有的類型定義可替代名稱,例如:
5、元組類型
元組,這個在OC中是沒有的,它可以將幾種數據類型組成一個元素,數據類型可以一樣,也可以不一樣,用()表示,例如(Int,String,Int)等表示;編程人員可以隨意地創建自己需要的元組類型,比如 (Int, Int, Int), 或者(String, Bool)等。同時組成元組的類型數量也是不限的。例如:
6、可選類型和強制解包
什麼是可選類型,可選類型就是這種類型的值要麼存在,並且等於某某值,要麼就是不存在。比如在某個字符串中查找某個字符,要麼存在這個字符,要麼不存在這個字符
上面那樣表示錯誤,但反過來可以,你可以把int類型值賦給Int?類型,如果要讓上面表達正確,我們可以強制解包,用!表示,
這表示我確定變量people確實是存在10這樣一個值的,注意如果可選類型的值不存在,仍然進行強制解包,會報一個錯誤
我們可以用if條件語句來判斷一個可選類型的值是否存在,
默認情況下:如果想將可選類型的值賦給具體類型,比如將Int?的值賦給Int類型,需要使用感嘆號!進行強制解包 ,我們可以聲明成隱式解包,