Swift入門(一)——基本的語法
近期開始學習swift。把學習的過程和總結整理成一個系列。方便日後回想總結。
基本的語法
基礎語法
swift中每一行結束後不須要加分號。多個語句在同一行內須要用分好隔開
//表示凝視。或者用/* ……*/
常量
常量是指定義之後無法改動值的量,比方設置一個最大嘗試登陸的次數,它的值一旦被確定,就不應該在程序中被改動。swift中的常量用let表示。定義方法例如以下:
let maxAttemptTime = 3 //正確
maxAttemptTime = 4 //錯誤。常量一旦定義不能夠改變
let maxAttemptTime //錯誤
另外要註意的是,常量在定義的時候必須要賦初值,當然也能夠不這麽做,後面會具體介紹。
變量
和常量類不同的是。變量用var表示,能夠任意改變值
var currentAttemptTime = 1 //正確
currentAttemptTime = currentAttemptTime + 1 //正確
打印常量和變量
OC中的NSLog方法依舊可用,也能夠用swift的println()方法。
NSLog("hello world")
println("hello world")
//以上兩句等價,輸出結果都是"hello world"
//也能夠打印變量或者常量
var name = "kt"
NSLog("name = \(name)")
println ("name = \(name)")
//以上兩句等價,輸出結果都是"name = kt"
swift也支持print方法,與println不同的是。println在結尾會自己主動加上換行符,這與java的語法是一致的。
類型
類型推導
習慣了oc、c++或者java的程序員會認為沒有變量的類型非常奇怪,事實上swift和php與js相似,都是支持類型推導功能的。
所謂的類型推導,就是說swift會依據變量的實際值,自己主動推導出變量所屬的類型。
swift中的基礎類型有Int、Double、String、UInt8、Character、Bool等。
就不一一解釋了。Swift中全部的類型都是首字母大寫的。
var name = "kt" //自己主動推導為String類型
var age = 20 //自己主動推導為Int類型
var pi = 3.1415926 //自己主動推導為Double類型
寬類型優先
既然swift支持類型推導。那麽π的近似值3.1415926。會被推導為什麽類型呢?是Float還是Double? 答案是Double,由於swift具有寬類型優先的特性,也就是為自己主動推導為取值範圍更寬泛的類型。
類型標註
最開始提到必須要給常量或者變量賦初值,假設不想賦初值,或者不習慣自己主動類型推導。我們還能夠顯示的給常量或者變量標註類型,這被稱為“類型標註”
var name: String //在變量名後加上冒號和類型名來進行類型標註
//經過類型標註後。能夠不賦初值
var name: String = "kt" //人為標註為String類型
var age: Int = 20 //人為標註為Int類型
//這樣的情況下的類型標註有些多此一舉
類型安全
swift支持類型推導,這個功能非常方便,與此同一時候,swift也是嚴謹的。由於它是類型安全的。
所謂的類型安全是指。不支持常量、變量之間的隱式類型類型轉換。
var a = 1
var b = 1.5
var c = a + b //報錯
也就是說。不同類型的變量(常量)不能夠出如今”+、-、*、/等運算符兩側”。
所謂的常量、變量之間,事實上是指字面量之間的隱式類型轉換是能夠的。
比方例如以下代碼:
var pi = 3 + 0.1415926 //這個必須能夠啊,否則就亂套了。
類型轉換
假設我希望把整數型和浮點型變量相加怎麽辦呢,能夠使用強制類型轉換,又稱顯式類型轉換。
var a = 1
var b = 1.5
var c = a + b //報錯
var c = Double(a) + b //正確,得到值為2.5的Double型變量c
var c = a + Int(b) //也正確。得到值為2的Int型變量c
須要說明三點:
- 精度由高向低或者由低向高都能夠。只是高精度轉向低精度會丟失小數點後的數據。
- 上述代碼不能夠改為“var c = Float(a) + b”,理由是類型安全 + 寬類型優先。
- 註意和C語言的語法差別,C語言中的寫法為(int)a,swift中的括號應加在變量上。
類型別名
通過typelias關鍵字能夠又一次命名類型,相似於C語言中的typedef,只是更簡單。
typealias Name = String //如今Name類型和String類型是全然一樣的了。
var myName: Name = "kt"
附錄
查看完整專欄——《Swift輕松入門》
【Swift入門(一)——基本的語法】
【Swift入門(二)——字符與字符串】
【Swift入門(三)——元組(Tuple)】
【Swift入門(四)——可選類型(Optionals)與斷言(Assert)】
【Swift入門(五)——數組(Array)】
【Swift入門(六)——字典(Dictionary)】
【Swift入門(七)——結構體(Struct)】
【Swift入門(八)——功能強大的求余運算符】
【Swift入門(九)——String與Int、Double、Float等數字相互轉換】
【Swift入門(十)——循環引用、弱引用和無主引用】
【Swift入門(十一)——類型轉換與is、as操作】
【Swift入門(十二)——利用Extension加入逆序輸出字符串方法】
Swift入門(一)——基本的語法