常量与变量
变量:
- 用
var
定义并初始化
var x = 10
- 只定义时,必须声明类型
var x //Error
var y: Int
print(y) //Error
y = 100
print(y) //100
常量:
- 用
let
声明 - 只能赋值一次
- 它的值不要求在编译时期确定,但使用前必须赋值一次
不要求编译时期确定
var age = 10;
age += 20;
let myAge = age;
使用前必须赋值
let age: Int
print(age) //Error
常用数据类型
两种数据类型,值类型与引用类型。
值类型 | 枚举类型enum | Optional |
值类型 | 结构体Struct | Bool、Int、Float、Double、Character、String、Array、Dictionary、Set |
引用类型 | 类Class |
整数类型
- 有符号:
Int8
、Int16
、Int32
、Int64
- 无符号:
UInt8
、UInt16
、UInt32
、UInt64
- 整数的最值:
Int8.max
、Int16.min
- 一般情况下,直接用
Int
浮点类型
Float
,32位,精度只有6位Double
,64位,精度至少15位
字面量
- 浮点类型:
float
、double
- 布尔:
true
、false
- 字符串:
let string = "xxx"
- 字符:
let str:Character = "🐶"
- 数字可以额外添加下划线或0来增强可读性
let x = 100_000_000
let y = 000123456
- 数组
let arr = [1,2,3,4,5]
- 字典
let dic = ["name":"x","age":10]
类型转换
整数转换
let int1: UInt16 = 2_000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)
浮点数转换
let int = 3
let double = 0.14159
let pi = Double(int) + double
let intPi = Int(pi)
//字面量可以直接相加,因为数字字面量本身没有明确类型
let ret = 3 + 0.14159
元组
let http404Error = (404,"Not Found")
print("The status code is \(http404Error.0)")
let (statusCode,statusMessage) = http404Error
let (justTheStatusCode,_) = http404Error
let http200Status = (statusCode:200, description: "Ok")
print("The status code is \(http200Status.statusCode)")