1.变量与常量
用 var 来声明变量,用let来声明常量。
变量声明后,可以改变。
常量声明后,如果是值类型的无法作任何改变,如果是引用类型,引用所指向的数据仍然可以改变。比如声明一个let a = 1,那么a无法改变。如果let b = SomeClass(),b无法改变,但b之下的属性可以改变。注:在swift中String,Array,Dicationary是值类型。
2.整数与浮点数
可以访问不同整数类型的min和max属性来获取对应类型的最小值和最大值。当存储最小值和最大值之外的数时,会报错。
Int属性:在32位平台上, 和Int32长度相同。在64位平台上, 和Int64长度相同。
Double表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
Float表示32位浮点数。精度要求不高的话可以使用此类型。
Double精确度很高,至少有15位数字,而 Float只有6位数字。在两种类型都匹配的情况下,将优先选择Double。
可以用Int(a),Float(a)等进行数值强转。
3.元组
元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。
let http404Error = (404, "Not Found")
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
你还可以通过下标来访问元组中的单个元素,下标从零开始:
print("The status code is \(http404Error.0)")
你可以在定义元组的时候给单个元素命名:
let http200Status = (statusCode: 200, description: "OK")
print("The status code is \(http200Status.statusCode)")
4.可选类型
使用可选类型(optionals)来处理值可能缺失的情况。用?代表可选类型,可选类型可能有值,可能为nil,不可选类型一定要有值,否则报错。
可用!来强制解析可选值,但必须有值,否则报错
可使用可选绑定优雅的解析可选值
if let actualNumber = Int(possibleNumber) {
print("\'\(possibleNumber)\' has an integer value of \(actualNumber)")
} else {
print("\'\(possibleNumber)\' could not be converted to an integer")
}
5.错误处理
你可以使用 错误处理(error handling) 来应对程序执行中可能会遇到的错误条件。
func makeASandwich() throws {
// ...
}
do {
try makeASandwich()
eatASandwich()
} catch SandwichError.outOfCleanDishes {
washDishes()
} catch SandwichError.missingIngredients(let ingredients) {
buyGroceries(ingredients)
}
你可以使用 错误处理(error handling) 来应对程序执行中可能会遇到的错误条件。
func makeASandwich() throws {
// ...
}
do {
try makeASandwich()
eatASandwich()
} catch SandwichError.outOfCleanDishes {
washDishes()
} catch SandwichError.missingIngredients(let ingredients) {
buyGroceries(ingredients)
}
6.断言
在某些情况下,如果值缺失或者值并不满足特定的条件,你的代码可能没办法继续执行。这时,你可以在你的代码中触发一个 断言(assertion) 来结束代码运行并通过调试来找到值缺失的原因。
如果条件判断为 true,代码运行会继续进行;如果条件判断为false ,代码执行结束,你的应用被终止。
let age = -3
assert(age >= 0, "A person's age cannot be less than zero")
在某些情况下,如果值缺失或者值并不满足特定的条件,你的代码可能没办法继续执行。这时,你可以在你的代码中触发一个 断言(assertion) 来结束代码运行并通过调试来找到值缺失的原因。
如果条件判断为 true,代码运行会继续进行;如果条件判断为false ,代码执行结束,你的应用被终止。
let age = -3
assert(age >= 0, "A person's age cannot be less than zero")