1.基本數(shù)據(jù)類型
swift中兩種數(shù)據(jù)類型,var 可變,let不可變,然后根據(jù)值來進行自動推導
如下所示:
? let x = 10 //不可變類型,一經(jīng)創(chuàng)建則不可更改
// 如果再執(zhí)行下面這句則會報錯
? x = 20
var y = 10.5//可變類型,執(zhí)行下面語句不會報錯
? ? ? y = 30
print(x+y) //這句會報錯,因為數(shù)據(jù)類型不同
在swift中是沒有自動轉(zhuǎn)換的,如果我們在OC中執(zhí)行
? int a = 10;
? float b = 10.5;
? NSLog(@“%f”,a+b);//代碼沒有問題不會報錯,但是在swift中不同數(shù)據(jù)類型之間是不能進行計算的
? //如果我們想要使它們可以進行計算,我們需要進行類型轉(zhuǎn)換
? //上面的x+y 我們可以這樣做:
? print(x + Int(y))
? print(Double(x) + y)
注:Int() 在api中是public struct Int
? ? ? 即結(jié)構(gòu)體類型,事實上大部分的基本數(shù)據(jù)類型在swift3之后都被定義成為結(jié)構(gòu)體類型
let z:Double = 20.3
我們還可以這樣初始化變量,即為它直接指定數(shù)據(jù)類型,但是我們通常不用指定類型,都是自動推導
var 類型有默認值,默認值為nil,let類型沒有默認值
2.可選數(shù)據(jù)類型
let x : Optional = 10
let y:Int? = nil?//?表示可選整數(shù)類型
print(x+y) //如果直接這樣執(zhí)行,會報錯可選類型在參與計算之前一定要先解包
print(x!+y!) //可以這樣解包進行運算,但是要注意值不能為空
關(guān)于可選性數(shù)據(jù)類型我們要注意:
1.!表示強行解包,從可選值中獲取一個非空值強行解包
2.!要解包的變量一定不能為空,否則會崩潰
3.程序中要慎用!
4.在我們真正使用的時候再進行解包,計算之前一定要先解包才能參與計算
swift與OC最大不一樣之處就是加了可選性數(shù)據(jù)類型,關(guān)于可選性數(shù)據(jù)類型其他要注意的,后續(xù)還會更新