int intValue = 10; //整型
double doubleValue = 10.10; //雙精度浮點型
float floatValue = 5.1;//單精度浮點型
long// 長
short// 短
signed //有符號
unsigned //無符號
//各種類型的數(shù)據(jù)的取值范圍在不同位的編譯器下取值范圍不同
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
-
有符號無符號
- 默認(rèn)是有符號的
- UInt8/UInt16/UInt32/UInt64 這些是無符號類型, 只能取 >= 0 的正整數(shù)
- **注意: **無符號的數(shù)比有符號的取值范圍更大, 因為符號位也用來存值
var uintValue7:UInt = 10
- Swift是類型安全的語言, 如果取值錯誤會直接報錯, 而OC不會
unsigned int intValue = -10; //oc不會報錯
var intValue:UInt = -10 // swift會報錯
//溢出:
int intValue = INT_MAX + 1; //OC:不會報錯
var intValue:UInt = UInt.max + 1 //Swift:會報錯
-
數(shù)據(jù)類型的相互賦值(隱式類型轉(zhuǎn)換)
- OC可以隱式類型轉(zhuǎn)換
- Swift:不具有隱式類型轉(zhuǎn)換
int intValue = 10; // oc 語句
double doubleValue = intValue; // 做隱式類型轉(zhuǎn)化
var intValue:Int = 10 // swift 語句
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)
print(intValue)
print(doubleValue)
-
注意: Double()并不會修改intValue的值
而是通過intValue的值生成一個臨時的值賦值給doubleValue
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者