?基本數(shù)據(jù)類型
OC:基本數(shù)據(jù)類型
int intValue = 10;
浮點型 double doubleValue = 10.10;
float floatValue = 5.1;
長 long
短 short
有符號 signed
無符號 unsigned
各種類型的數(shù)據(jù)的取值范圍在不同位的編譯器下取值范圍不同
Swift:注意關(guān)鍵字大寫
整型
var intValue:Int = 10
浮點型
var intValue1:Double = 10.10 表示64位浮點數(shù)
var intValue2:Float = 9.9 表示32位浮點數(shù)
如果按照長度劃分,Swift中的長短比OC更加精確
var intValue3:Int8 = 6
var intValue4:Int16 = 7
var intValue5:Int32 = 8
var intValue6:Int64 = 9
有符號無符號, 默認是有符號的(UInt8/UInt16/UInt32/UInt64)
var uintValue7:UInt = 10
注意:無符號的數(shù)比有符號的取值范圍更大, 因為符號位也用來存值
Swift是類型安全的語言, 如果取值錯誤會直接報錯, 而OC不會
取值不對
OC:unsigned int intValue = -10; 不會報錯
Swift: var intValue:UInt = -10 會報錯
溢出:
OC:int intValue = INT_MAX + 1; 不會報錯
Swift:var intValue:UInt = UInt.max + 1 會報錯
數(shù)據(jù)類型的相互賦值(隱式類型轉(zhuǎn)換)
OC可以隱式類型轉(zhuǎn)換
int intValue = 10;
double doubleValue = intValue;
Swift:不具有隱式類型轉(zhuǎn)換
在Swift中“值永遠不會被隱式轉(zhuǎn)換為其他類型”(OC中可以隱式類型轉(zhuǎn)換)
以下語句會報錯:
var intValue:Int = 10
var doubleValue:Double = intValue
?數(shù)據(jù)類型轉(zhuǎn)換
Swift不允許隱式類型轉(zhuǎn)換, 但可以使用顯示類型轉(zhuǎn)換(強制類型轉(zhuǎn)換)
OC寫法
int intValue = 10;
double doubleValue = (double)intValue;
Swift寫法:
var intValue:Int = 10var doubleValue:Double
doubleValue = Double(intValue)
注意:Double()并不會修改intValue的值
而是通過intValue的值生成一個臨時的值賦值給doubleValue
print(intValue)
print(doubleValue)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者