常量let和變量var
let ?常量
定義:被賦初始值后不能再被賦值。
var ?變量
定義:被賦初始值后可以再被賦值
可以這樣直接初始化多個類型一致的變量或者常量
var a = 1 , b = 2 , c = 3
如果不給出變量(常量)的類型,那么系統(tǒng)會默認指定類型
比如,
let a = 1 ?a就是Int類型
let a = "ABC" a就是String類型
申明一個變量(常量)也可以把類型直接指明出來。
let a:Int = 1
let website:String = "www.baidu.com"
整形
申明一個整形方式:
let a = 1 (默認為Int型) 或者 let a: Int = 1
如果說,申明的整形值大于了類型存儲最大值,那么swift就會直接報錯,也說明swift是個強類型語言,直接在編譯過程中就檢驗出錯誤。
在swift中,申明一個整形可以用十進制,二進制,八進制,十六進制去申明。
在申明一串很長的數(shù)字的時候,也可以用下劃線來分割,1_000_000,使得易讀
布爾類型和簡單的if判斷
在swift中,只有true和false。等同于oc中的YES和NO
在沒指定類型,系統(tǒng)默認為bool
let imTrue = true
let imFalse = false
相比于oc來說,swift的if語句顯得更加簡練
if imFalse{
? ? ? ? ? ? ?print("true")
} else{
? ? ? ? ? ? ?print("true")
}
在oc中,0為假,大于0為真。
但在swift中是不允許這樣操作的。
為此,我們可以這樣處理
浮點數(shù)
Float 單精度浮點數(shù) ,采用32位表示
Double 雙精度浮點數(shù) ,采取64位表示
可以從下面的代碼看出區(qū)別
在swift,申明一個浮點數(shù),如果不做類型申明,那么當申明的浮點小數(shù)位數(shù)很小,那么會默認為Float,很大就默認為Double
類型轉化
在swift中,是不允許不同類型的變量(常量)進行加減乘除等操作的。
在類型轉化的時候,也會出現(xiàn)內存溢出,同樣也會報錯。
元組
可以將多個不同類型的值集合在一個數(shù)據(jù)中
申明一個元組
let point = (5 , 2)
var point = (5 , 2)
var httpResponse = (404 , "Not Found")
也可以指定元組元素類型申明一個元組
var point2:(Int , Int , Int) = (10 , 5 , 2)
var httpResponse2:(Int , String) = ( 200 , "OK")
也可以為元組元素定義一個名字這樣申明一個元組
let point4:(x:Int , y:Int) = (10 , 5)
元組申明了要如何去用呢?那就要去元組解包
元組解包
var point = (5 , 2)
let (x,y) = point
print(x,y)
也可以直接調取元組元素(這樣非常不直觀)
point.0 ?(相當于5)
point.1 (相當于2)
也可以更直觀的去解包
let point3 = (x:3 , y:4)
point3.x
point3.y
還有一種解包方法,通過下劃線的方式把不需要解讀的元組數(shù)據(jù)忽略掉
Print打印參數(shù)設置
在print打印中,多個值之間是空格分開
separator參數(shù)
print(x , y , z , separator:",")//separator設置后,就以,為分割符
terminator參數(shù)
print(x , y , z , terminator:"哈哈")//terminator設置后,以“哈哈”為結束語,同時不會有回車
在oc中,終端打印變量參數(shù),需要NSLog(@"%d",a)形式
在swift中,提供了"\()"來進行字符串插值運算
print("\(y) * \(z) = \(y*z)")//利用\()來進行字符串插值進行運算