數(shù)據(jù)類型
- 變量與常量
//變量聲明使用var
var str = "hello"
var age=20, name:String="xiaoming"
//常量聲明使用let
let world = "world"
// \(變量) 占位符
println("her name is \(name)")
- 數(shù)據(jù)類型
//Int 與平臺(tái)有關(guān),對(duì)應(yīng)的 Int32唆姐, Int64
let oneMillion = 1_000_000 //下劃線分割,可有可無
// 數(shù)據(jù)類型不支持隱式轉(zhuǎn)換
var width:Float = 2.1
var height:Double = 3.9
var area1 = width * Float(height)
var area2 = Int(width) * 4
- 類型別名
typealias Age = UInt16
let myAge:Age = 10
- 元組
var score = (140, 140, "優(yōu)秀")
print(score.0) //下標(biāo)取值
var health : (Int, Int, String)
health = (182, 78, "良好") //賦值必須為所有成員變量賦值
var test:(Int, (Int, String))
test = (10, (100, "Swift"))
-
可選類型
任何已知類型后面緊跟赵抢?即可表示“可選類型”,表示值缺失的情況var string = "hello" var num:Int? = string.toInt() println(num!)//num 為nil,值缺失
-
強(qiáng)制解析
在變量或者常量后面加宠叼!冒冬, 必須可選類型的變量和常量確有值時(shí)才能解析成功var num1:Int? = 10 var num2:Int? = 20 if num1 != nil && num2 != nil { let sum = num1! + num2! } else { }
-
可選綁定
可有用if 和while 語句中對(duì)可選類型的值進(jìn)行判斷并把值賦給一個(gè)常量或變量var str3:String! = "Swift" if var temp = str3 { } else { println("str3 的值為nil 不能解析") }
-
隱式解析
在已有類型后面加简烤!,被賦值后不會(huì)重新變?yōu)閚ilvar str4:String! = "hello" println(str4)
數(shù)組横侦、字典
1.都用[]
2.空數(shù)組 和 空字典
var emptyArray = String (或者 Array<String>() )
let emptyDictionary = Dictionary<String,Int>()
或者
var emptyArr:String[] = []
或者
var emptyArray = Array([]) //用數(shù)組創(chuàng)建數(shù)組
對(duì)于已知類型的字典可用[:]置空
var arr = [] //直接這樣寫arr是個(gè)空的NSArray
3.確定長(zhǎng)度和默認(rèn)值的數(shù)組
var threeDoubles = Double[](count: 3, repeatedValue: 0.0)
4.用只讀屬性count來讀取數(shù)組和字典的長(zhǎng)度
5.用屬性isEmpty檢查數(shù)組的長(zhǎng)度是否為0
6.往數(shù)組追加元素
emptyArray.append("one")
emptyArray += "two"
emptyArray += [ "three" , "four" ]
emptyArray.insert("zero" , atIndex:0)
7.從數(shù)組中刪除元素
let lastElement = emptyArray.removeLast() //刪除最后一個(gè)
let indexElement = emptyArray.removeAtIndex(3) //按索引刪除
emptyArray[0...2] = [] //區(qū)間元素替換
- 遍歷數(shù)組
for (index, value) in enumerate(emptyArray) {
println("Item (index): (value)")
}
- 給字典增加元素
emptyDictionary["zero"] = 0
if let oldValue = emptyDictionary.updateValue(1, forKey: "one") {
println("The old value for key:one was \(oldValue).")
} //增加或更新元素
10.移除字典元素
emptyDictionary["zero"] = nil
let oldValue = emptyDictionary.removeValueForKey("one")
emptyDictionary.removeAll()
11.遍歷字典
for (key, value) in dic {
println("\(key): \(value)")
}
12.獲取字典的keys和values
let keys = Array(dic.keys)
let values = Array(dic.values)
13.數(shù)組的copy方法
通過調(diào)用數(shù)組的copy方法來完成強(qiáng)制拷貝。這個(gè)方法將會(huì)完整復(fù)制一個(gè)數(shù)組到新的數(shù)組中榨馁。
14.數(shù)組的unshare方法
如果多個(gè)變量引用了同一個(gè)數(shù)組银酗,可以使用unshare方法來完成一次“獨(dú)立”