数据类型
- 变量与常量
//变量声明使用var
var str = "hello"
var age=20, name:String="xiaoming"
//常量声明使用let
let world = "world"
// \(变量) 占位符
println("her name is \(name)")
- 数据类型
//Int 与平台有关,对应的 Int32, Int64
let oneMillion = 1_000_000 //下划线分割,可有可无
// 数据类型不支持隐式转换
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, "优秀")
print(score.0) //下标取值
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,值缺失
-
强制解析
在变量或者常量后面加!, 必须可选类型的变量和常量确有值时才能解析成功var num1:Int? = 10 var num2:Int? = 20 if num1 != nil && num2 != nil { let sum = num1! + num2! } else { }
-
可选绑定
可有用if 和while 语句中对可选类型的值进行判断并把值赋给一个常量或变量var str3:String! = "Swift" if var temp = str3 { } else { println("str3 的值为nil 不能解析") }
-
隐式解析
在已有类型后面加!,被赋值后不会重新变为nilvar str4:String! = "hello" println(str4)
数组、字典
1.都用[]
2.空数组 和 空字典
var emptyArray = String (或者 Array
let emptyDictionary = Dictionary
或者
var emptyArr:String[] = []
或者
var emptyArray = Array([]) //用数组创建数组
对于已知类型的字典可用[:]置空
var arr = [] //直接这样写arr是个空的NSArray
3.确定长度和默认值的数组
var threeDoubles = Double[](count: 3, repeatedValue: 0.0)
4.用只读属性count来读取数组和字典的长度
5.用属性isEmpty检查数组的长度是否为0
6.往数组追加元素
emptyArray.append("one")
emptyArray += "two"
emptyArray += [ "three" , "four" ]
emptyArray.insert("zero" , atIndex:0)
7.从数组中删除元素
let lastElement = emptyArray.removeLast() //删除最后一个
let indexElement = emptyArray.removeAtIndex(3) //按索引删除
emptyArray[0...2] = [] //区间元素替换
- 遍历数组
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.数组的copy方法
通过调用数组的copy方法来完成强制拷贝。这个方法将会完整复制一个数组到新的数组中。
14.数组的unshare方法
如果多个变量引用了同一个数组,可以使用unshare方法来完成一次“独立”