swift读书笔记(一)
打算重头开始再看一遍swift 希望可以更加深刻的了解这门语言
关于常量与变量
变量用 var 声明 且往后均可修改该值
常量用 let 声明 必须赋以初值
一行可以定义多个同样类型的变量 并用逗号隔开 如下:
var firstName, lastName, fullName: String
一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。
print(_:separator:terminator:)
一般print函数默认在字符串的尾部加一个换行符 如不想换行 则用:
print(someValue, terminator:"")
separator 与 terminator 均有参数的默认值 一般可以省略
swift的类型推断一般会把小数推断为Double 而不是 Float
整数, 浮点数
一般不要使用 UInt(无符号类型) (原因之后补充)
数字型的字面量:
• 一个十进制数,没有前缀
• 一个二进制数,前缀是 0b
• 一个八进制数,前缀是 0o
• 一个十六进制数,前缀是 0x
浮点字面量可以是十进制(没有前缀)或者是十六进制(前缀是0x)。小数点两边必须有至少一个十进制数字(或者是十六进制的数字)。
十进制浮点数也可以有一个可选的指数(exponent),通过大写或者小写的e来指定(基数为10)
十六进制浮点数必须有一个指数,通过大写或者小写的p来指定(基数为2)
数值类字面量可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量
通常来讲,即使代码中的整数常量和变量已知非负,也请使用Int类型。总是使用默认的整数类型可以保证你的整数常量和变量可以直接被复用并且可以匹配整数类字面量的类型推断。
只有在必要的时候才使用其他整数类型,比如要处理外部的长度明确的数据或者为了优化性能、内存占用等等。使用显式指定长度的类型可以及时发现值溢出并且可以暗示正在处理特殊数据
类型别名
typealias 别名 = 类型名
元组类型
元组是把多个值复合成了一个值 元组内的值可以是不同的类型
可以把一个元组的值分解成常量和变量 如:
let (name, age) = personInformation
可以用下标来访问元组
也可以给元组中的各个值取名 如 :
let personInformation = (name: "murray", age: "18")
给元组命名之后 可以利用不同元素的名字来获取值
函数可以返回元组类型 这样可以在一个函数中获取到多个值
可选值
如果声明一个变量或常量时没有赋值 只声明为 类型? 则默认值为nil
swift中的nil是个确定的值 不是指针 用来表示值的缺失 所以任何类型的可选状态都可以被设置成nil
可选绑定:
if let value = optionalValue { or while let value = optionalValue {
} }
不仅可以用来判断可选类型中是否有值,同时可以将可选类型中的值赋给一个常量或者变量
可以包含多个可选绑定或多个布尔条件在一个if语句中,只要使用逗号分开就行。只要有任意一个可选绑定的值为nil,或者任意一个布尔条件为false,则整个if条件判断为false,这时你就需要使用嵌套if条件语句来处理
可选绑定时 被赋值的常量已经被拆包
错误处理
func aFunction throws {
}
//这个函数可能抛出错误
do {
try aFuntion()
runThisOne()
}
catch firstError{
}
catch secondError{
}