標籤:swift ios 資料類型 運算子 switch
總結複習一些基本的東西,主要是與OC不同的以及新增的。
一、基礎資料型別 (Elementary Data Type)
Int、Float、Double、Bool、Character、String(首字母都大寫)
Array、Dictionary、元群組類型(Tuple)、可選類型(Optional)
指定資料類型:
let a:Int = 10 //指定資料類型。 一般不需要指定,會自動判斷類型。 (使用時需初始化)
1.1 整形
//1.1整形let maxInt = Int.max //擷取Int類型的最大值let minInt = Int.minlet a1 = 10 //十進位let a2 = 0b1010 //二進位以0b開頭let a3 = 0o12 //八進位以0o開頭let a4 = 0xA //十六進位0x
1.2 浮點
//1.2浮點型Float,Doublelet b1 = 0.123 //預設是Doublelet b2 = 0.123e3 //123.0
1.3 Bool ,跟上主流了。。。。
//1.3Bool (不是YES/NO了)let c1 = truelet c2 = false
1.4 元祖
//1.4元組. 可以是N個任意類型的資料let tup1 = (age:1,name:"abc",hight:2,jj:0.1) //帶元素名稱let tup2 = (1,"abc",2,0.1) //省略元素名稱var tup3:(Int,String) = (1,"haha") //指定類型. (指定類型後就不能再寫元素名稱了)var (t1,t2) = tup3 //直接弄2個變數接收元祖var (_,t3) = tup3 //只接收一個
二、資料的輸出格式 && 類型轉換 && 類型別名
簡化了不少。
//2.1可以在數字中增加額外的0或_, 增強可讀寫let d1 = 000123let d2 = 00123.0012300let d3 = 1_2_3//let d4 = _123 //錯誤
//2.2類型轉換let e1 = 1let e2 = 0.12//let e3 = e1 + e2 //錯誤, 類型不同不能直接相加let e3 = Double(e1) + e2 //類型轉換
類型別名就相當於C中的typedef
//2.3 類型別名 typealiastypealias XNInt = Intlet test:XNInt = 10
三、新加的幾個運算子
3.1 範圍運算子,上篇WWDC上用過
//3.1 範圍運算子..< ...for index1 in 1...10{ } //表示閉包[1 10]for index2 in 1..<10{ } //表示半閉合[1 10)
3.2 溢出運算子。(新增加的,可用來處理資料溢出的情況)
&+溢出加 &-溢出減 &*溢出乘 &/溢出除 &%溢出餘
let f1 = UInt.max//let f2 = x + 1 //這樣寫會上溢let f2 = f1 &+ 1 //溢出加. 值為0. 變為溢出後的最小值let g1 = 10//let g2 = g1 / 0 //會報錯let g2 = g1 &/ 0 //值為0//let g3 = g1 % 0 //會報錯let g3 = g1 &% 0 //值為0
3.3 一些注意的地方
非0即真這種C語言的東西遭淘汰!賦值更加靈活,且賦值沒有返回值。
let (x,y) = (1,2) //整體賦值//if(x = y){ } //這樣寫是錯誤的. 能防止將==寫成=//if(10){ } //這樣寫也是錯誤的. 非0即真已經不適用.if(true){ }
四、流程式控制制語句
新增加for in語句,同時switch語句更加靈活。
4.1 迴圈for in
for h1 in 1...10{ println(h1)}for _ in 1..<10{ //不需要用到範圍中的值時,直接忽略用_ println("####")}4.2 標籤 (可用來跳出指定迴圈,瞭解即可)
xn: for _ in 1...3 { println("***") for tmp in 1...5{ println("###") //指定退出 if tmp == 3{ break xn } }}4.3 Switch語句
1)與C語言中的不同. 不必每個case下寫break,自動break
2)每個case後面必須有可執行語句, 否則會報錯
3)每個case都可以匹配多個條件, 也可以填寫一個範圍
4)switch要保證處理所有的情況,一定加上default.
5)case還可以匹配元祖
let score = 10switch score{case 0...3: println("差")case 4,5,6,7: println("良")case 8...10: println("優")default: println("超神")}
評價:確實簡化不少,寫起來也挺順手。
參考:
The Swift Programming Language
Apple Dev Center
轉載請註明出處:http://blog.csdn.net/xn4545945
【iOS】Swift資料類型、運算子、新增語句等小結