1:常量
只能赋值1次,它的值不要求在编译时期确定个,但使用之前必须赋值1次
常量和变量在初始化之前,都不能使用
2:标识符
标识符号(比如常量名、变量名、函数名)几乎可以使用任何字符
标识符不能以数字开头,不能包含空白字符、制表符、箭头等特殊字符
3:常见数据类型
值类型(value type): 枚举(enum) Optional
结构体(struct) Bool、 Int、Float、Double、Character、String、Array、Dictionary、Set
引用类型(reference type)类(class)
整数类型:Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64
在32bit平台,Int等价于Int32,Int等价于Int64
证书的最值:UInt8.max、Int16.min
一般情况下,都是直接使用Int即可
浮点类型:Float,32位,精度只有6位;Double,64位,精度至少15位
4:字面量
let bool = true // 布尔 let string = "字符" // 字符串 let character: Character = "sdf" // 字符(可存储ASCII字符Unicode字符)
// 整数
let intDecimal = 17 // 十进制 let intBinary = 0b10001 // 二进制 let intOctal = 0o21 // 八进制 let intHexadecimal = 0x11 // 十六进制
// 浮点数
let doubleDecimal = 125.0 // 十进制 等价于1.25e2 、 0.0125 、1.25e-2
// 数组
let arrary = [12, 23, 4, 4, 2] // 字典 let dictionary = ["age" : 23, "height" : 334]
证书和浮点数可以额外添加的零或者添加下划线来增强可读性
100_0000、 1_000_000.000_000_000_1、000123.456
5:类型转换
// 整数转化
let int1: UInt16 = 2_000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)
// 整数、浮点数转换
let int = 3
let double = 0.343
let pi = Double(int) + double
let intPi = Int(pi)
// 字面量可以直接相加,因为数字字面量本身没有明确的类型
let result = 3 + 0.1234
6:元祖 tuple
let http404Error = (404, "Not Found")
print("The status code is \(http404Error.0)")
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
let (jstTheStatusCode, _) = http404Error
let http202Status - (statusCode: 200, description: "OK")
print("The status code is \(http2002Status.statusCode)")