在程式語言中,不同的資料資訊需要不同的資料型別來儲存,計算機記憶體中針對不同的資料型別它們所分配的記憶體大小是不同的,特定的值需要特定的型別來宣告。
內建資料型別
根據乙個整數變數佔據的記憶體空間(8/16/32/64-bit,現在 ios 開發基本全部是 64 位)以及整數是否帶有符號(unsinged),swift 一共定義了 8 種不同的整數型別:
int8/int16/int32/int64
uint8/uint16/uint32/uint64
第一行表示有符號整數,第二行表示無符號整數。
一般不會在**中直接使用這些具體的整數型別,只使用 int 來定義有符號整數,使用 uint 來定義無符號整數。swift 編譯器會根據當前的目標編譯平台,把 int 或者 uint 轉換成相應的整數型別。
例如在 32 位平台上,int 和 int32 表示的整數長度相等。
在 64 位平台上,分別使用 mix 和 max 方法,看看 int 和 int64 所表達的值分別是多:
1 print("int.min = \(int.min)")
2 print("
int.max = \(int.max)")
3 print("
int64.min = \(int64.min)")
4 print("
int64.max = \(int64.max)")
56列印結果:
7 int.min = -9223372036854775808
8 int.max = 9223372036854775807
9 int64.min = -9223372036854775808
10 int64.max = 9223372036854775807
int 和 int64 表達的範圍是一樣的。
同時在 swift 裡面,可以用不同的進製來表達乙個整數:
1 let fifteenindecimal = 15//10 進製
2 let fifteeninhex = 0xf
//16 進製
3 let fifteeninoctal = 0o17 //
8 進製
4 let fifteeninbinary = 0b1111 //
2 進製
以及在數字中使用下劃線:
1 let million = 1_000_000
在 swift 裡面,根據表達的精度不同,有兩種不同的浮點數型別:
float: 最多表達 6 位精度的浮點數。
double: 至少可以表達 15 位精度的浮點數。
1 var onethirdinfloat: float = 1/32 var onethirdindouble: double = 1/3
34 print("
\(onethirdinfloat)")
5 print("
\(onethirdindouble)")
67列印:8
0.333333
90.333333333333333
還可以使用科學計數法表示浮點數:
1 var pi = 0.314e12 pi = 314e-2
在 swift 裡,當給變數不指定型別的時候,編譯器會把整數的型別推倒為 int,會把浮點數的型別推倒為 double:
1 var three = 32 print("
3 的型別是: \(type(of: three))")
34 var zeropointforteen = 0.4
5 print("
0.4 的型別是: \(type(of: zeropointforteen))")
67列印:8
3的型別是: int
90.4 的型別是: double
在 swift 裡面可以把不同型別的數字的字面值直接進行運算:
1 var pi = 3 + 0.142 print("
pi 的值: \(pi), pi 的型別是:\(type(of: pi))")
34列印:5 pi 的值: 3.14, pi 的型別是:double
但是不能把不同數字型別的變數直接進行算數運算,當對變數進行算數運算的時候,所有變數的型別必須是相同的,如果變數型別不同,必須明確將其中一些變數進行型別轉換:
1 var sum = double(three) + zeropointforteen
從上面可以看出,使用 double(three) 把乙個 int 型別的 three "轉換"成了浮點數,在這裡,之所以對轉換加引號,是因為並沒有真的把 three 型別從 int 轉換成 double,而是用 three 的值,初始化了乙個新的值為 3 的 double,並用這個新的 double 和 zeropointforteen 相加而已。
Swift 資料型別 二
1.整型 letnum1 uint8 1 無符號8位整數 letnum2 uint16 2 無符號16位整數 letnum3 uint32 3 無符號32位整數 letnum4 uint64 4 無符號64位整數 letnum5 int8 1 有符號8位整數 letnum6 int16 2 有符號1...
Swift 資料型別學習
基本資料型別 swift是個強型別語言,除了在定義變數的時候指明其資料型別,編譯器還可以根據其初始化值來進行型別推斷。在swift裡定義變數使用var 定義變數 和 let 定義常量 關鍵字。int double float bool string 所有這些基本資料型別不再和c 或者oc一樣了,他們...
Swift資料型別(一)
中的資料型別包括 整型 浮點型 布林型 字串 元組 集合 列舉 結構體和類等。這些型別照引數傳遞方式的不同可以分為 值型別和引用型別。值型別是在賦值或給函式傳遞引數時,建立乙個副本,把副本傳遞過去,這樣在函式的呼叫過程中不會影響原始資料。引用型別就是在賦值或給函式傳遞引數時,把本身資料傳遞過去,這樣...