常量
1.只能赋值1次
//1.
let age = 10
//2.
let age: Int
age = 10
//错误方式
let age
age = 10
let age = 10
age = 20
错误示范1
2.它的值不要求在编译时期确定,但使用前必须赋值1次
//1
var num = 10
num ++
num += 20
let age = num
//2
func getAge() -> Int {
return 10
}
let age = getAge()
3.常量和变量在初始化之前,都不能使用
//错误示范
let age: Int
let height: Int
print(age, height)
错误示范2
标识符
(比如常量名、变量名、函数名)几乎可以使用任何字符
func 🐂🍺(){
print(6666)
}
🐂🍺()
标识符函数
标识符不能以数字开头,不能包含空白字符、制表符、箭头等特殊字符
常见数据类型
值类型(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,64bit平台,Int等价于Int64
-
整数的最值:UInt8.max,Int16.min
-
一般情况下,都是直接使用Int。(除非大量数据运算或者对数据大小有严格要求需要指定大小)
-
浮点类型:Float 32位,精度只有6位;Double, 64位, 精度至少15位。
//定义Float 必须声明
let floatV: Float = 10.0
//默认Double类型
let doubleV = 10.0
字面量
// 布尔
let boolV = true // false
//字符串
let stringV = "欧皇"
//字符 (可存储ASKII字符、Unicode字符)
let characterV: Character = "🐅" //必须声明Character类型,字符 和 字符串都用 "" 表示,默认为字符串
// 整数
let intDecimal = 18 //十进制
let intBinary = 0b1001 //二进制
let intOctal = 0o21 //八进制
let intHexadecimal = 0x11 //十六进制
// 浮点
let doubleDecimal = 125.0 //1.25e2
//
let doubleHexadecimal1 = 0xFp2 // 15 * 2^2
//整数和浮点数可以添加额外的零或者添加下划线来增强可读性
let int100万 = 100_0000
let int12345 = 000123.456
//数组
let array = [1, 2, 3, 4, 5]
//字典
let dictionary = ["age":18,"height":168,"weight":200]
类型转换
//整数转换
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 result = 3 + 0.14159
错误示范
元组(tuple)
//元组
let error = (404, "Not Found")
error.0
error.1
let (statusCode, statusMessage) = error
print("The status code is \(statusCode)")
let (justTheStatusCode, _) = error
let http200Status = (statusCode: 200, description: "OK")
print("The status code is \(http200Status.statusCode)")
网友评论