let age1: Int
age1 = 10
let age2: Int = 10
let age3 = 10
/*
常量
只能赋值一次
它的值并不要求在编译时期确定,但使用之前必须赋值一次
*/
var num = 10
num += 20
let age4 = num
print(age4)
func getAge() -> Int {
return 30
}
let age5 = getAge()
//常量变量在初始化之前,都不能使用
//let age : Int
//var height : Int
//print(age)
//print(height)
//常量没有确定类型就赋值是错误的
//let age6
//age6 = 10
/*
标识符(比如常量名、变量名、函数名)命名几乎可以使用任何字符,但不能以数字开头,不能包含空白字符、制表符、箭头等特殊字符
*/
let 🐂 = "aa"
var 🍺 = "啤酒"
func 🐂🍺 () {
print("666")
}
🐂🍺()
/*
数据类型:
值类型:枚举类型 Optional,结构体 :Bool Int Float Doubble Character String Array Dictionary Set
引用类型:类
32 bitp平台 Int = Int32
64 bitp平台 Int = Int64
*/
print(UInt16.max)
//字面量
//布尔
let bool = true //false
//字符串
let string = "哥哥"
//字符(可存储ASCII、Unicode字符)
let character:Character = "够" //是字符
let Character1 = "够dds" //没写character:是字符串
//整数
let intBinary = 0b1001 //2进制
let intOctal = 0o21 //8进制
let intDecimal = 17 //10
let intHexadecimal = 0x11 //16进制
//整数和浮点数可以添加额外的零或者添加下划线来增强可读性
let a = 100_0000
let b = 1_000_000.000_000_1
let c = 000123.456
//浮点数
let doubleDecimal0 = 125.0
let doubleDecimal1 = 1.25e2 //doubleDecimal0 doubleDecimal1等价
let doubleDecimal2 = 0.0125
let doubleDecimal3 = 1.25e-2 //doubleDecimal2 doubleDecimal3等价
let doubleHexadecimal0 = 0xFp2 //15x2^2 相当于10进制的60
let doubleHexadecimal1 = 0xFp-2 //15x2^-2 相当于10进制的3.75
//数组
let array = [1, 3, 5, 7, 9]
//字典
let dictionary = ["age" : 18 , "height" : 168 , "weight" : 120]
类型转换
//整数转换
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
//元组初始化
let error = (404, "Not Found")
print(error.0)
let (statusCode, statusMessage) = error
print(statusCode)
let (justCode, _) = error
let status = (statusCode0 : 200, des : "OK")
print(status.statusCode0)