这篇文章主要解说苹果Swift官方指南的第二章前四节的要点内容,假设想看完整的英文文档能够去苹果开发人员页面下载。
Basic
声明变量var
凝视依然使用"//" "/**/", 注意这里"/**/"在Swift能够嵌套使用
表达式结尾不再有分号
整数
Float-pointing
类型推导
var i1: UInt8 = 5 var i2: UInt16 = 2_000 var sum = UInt16(i1) + i2 //2001
别名
typealias MyInteger = Int var mi: MyInteger = 8
Boolean
var i = 1 if i { //会引发编译错误 }
元组
var http404Error = ("error", 404) var (statusMessage, statusCode) = http404Error
你能够通过statusMessage或者statusCode直接訪问元组中的值。
该元组以(.0 "error", .1 404)结构进行存储所以能够直接訪问
假设我们仅仅想获取code忽略message能够这样进行訪问
var (_ , code) = http404Error
这样就能够不去管message而直接拿到code了
文档中还解说了一种带描写叙述的初始化方式,如:
let http200Status = (statusCode: 200, description: "ok")
Optional与if语句
let number = "1sdd" var isIn = false let convertN = number.toInt() if convertN { isIn = true } isIn //false
上面这个样例即使将赋值语句放入if的statement中也成立,
nil
Assert
运算符
字符串和字符
在Swift中,String属于value type 传递时会被拷贝,而不是指传递引用。
这样能够避免未知的改动。
声明空字符串
/*Empty String*/ var statement: String? var empty = "" var anoEmpty = String() if empty.isEmpty { statement = "empty string" } statement
isEmpty函数推断是否为空,经常使用的函数还有
countElements 返回字符个数
String没有length函数,有lengthOfBytesUsingEncoding()函数,来获取指定字符集下的字符串长度
遍历则直接使用for-in来获取每一个字符
字符串的插入能够直接使用(),比較不再使用isEqualToString: 而是通过"=="
前后缀函数 hasPrefix() hasSuffix()
大写和小写转换 uppercaseString() lowercaseString
在Swift里我们能够通过訪问String的utf8。utf16,unicodeScalar来获取指定字符集下的unicode值
scalar的value为unicode值。直接訪问则为字符
字符也能够使用一元运算符"+"来进行拼接
集合类型
let i: Int = 4 let d: Int = 3 var arr: Array<Int> = [i, d] var strings: String[] = ["123", "nihao"] var anoStrings : Array<String> = strings
let isEmpty = arr.isEmpty //false let count = arr.count //2
var arr = [6,3] arr += 5 //[6,3,5] arr.insert(10, atIndex: 0) //[10,6,3,5] arr.removeAtIndex(0) //[6,3,5] arr.removeLast() //[6,3]
var emptyArr = Array<Int>() var pArr = Array<Int>(count:3, repeatedValue:0)
var dict: Dictionary<Int, Int> = [4 : 8, 10 : 20]
这里的键值都为Int类型,这在OC里肯定是不同意的
假设有键,则讲新值赋进去。返回旧值。
dict.updateValue(50, forKey: 10) //20 dict //[4 : 8,10 : 50] dict.updateValue(100, forKey: 50) //nil dict //[4 : 8, 10 : 50, 50 : 100]
遍历键或者值则使用dict.keys dict.values来訪问
var emptyDict = Dictionary<String, String>()