1. 书写格式
一句代码尾部可以省略“;”,多句代码写到同一行时必须用“;”分开。
print("Hello,World");print("test")
用var定义变量,let定义常量;编译器可以自动推断出变量、常量的类型。
var a = 10
a = 20
let b = 30
print(a)
print(b)
print("Hello world \(a)")
自动判断类型的前提:定义的时候就已经赋值了;
let age = 10
否则在定义的时候要指定类型.
let age: Int
age = 10
2. 常量
只能赋值一次;它的值不要求在编译时期确定,但使用之前必须赋值一次;
var num = 10
num += 20
num += 30
let age = num
print(age)
3. 标示符
标示符(比如说常量名、变量名、函数名)几乎可以使用任何字符;标示符不能以数字开头,不能包含空白字符、制表符、箭头等特殊字符;
func 🐂🍺() {
print("666")
}
🐂🍺()
let 🌹 = "花"
4. 常见的数据类型
只有两种类型:值类型(value type) 和 引用类型(reference type)
值类型:
枚举(enum):Optional结构体(struct): Bool、Int、Float、Double、Character、String、Array、Dictionary、Set;
引用类型:
类(class):
整数类型:Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64;
一般情况下,都是直接用Int即可;
整数的最值:UInt8.max、UIt16.min;
浮点类型:Float,32位,精度只有6位;Double,64位,精度至少15位;
Double直接赋值就可以了,默认为double;Float 需要写清楚类型;
let letFloat: Float = 30.0
let letDouble = 30.0
5. 字面量
1). 布尔
let bool01 = true //取反是false
2). 字符串
let string01 = "字符串"
3). 字符(可存储ASCII字符、Unicode字符)
注意:需要指定类型,否则会按字符串处理
let chaacter01: Character = "a"
4). 整数
let intDecimal = 17 //十进制
let intBinary = 0b10001 //二进制
let intOctal = 0o21 //八进制
let intHexadecimal = 0x11 //十六进制
整数和浮点数可以添加额外的零或者添加下滑线来增强可读性100_0000、1_000_000.000_000_1、000123456
5). 数组
let array = [1,3,5,7,9]
6). 字典
let dictionary = ["age": 18, "height": 185, "height": 70]
6. 类型转换
整数转换
要将低类型转为高类型
let int1: UInt16 = 2_000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)
整数、浮点数转换
let int01 = 3
let double01 = 0.1415
let pi = Double(int01) + double01
let intPi = Int(pi)
字面量可以直接相加,因为数字字面量本身没有明确的类型
let result = 3 + 0.1315
7. 元组(tuple)
多种数据类型组合在一起
let http404Error = (404, "Not Found")
print("The status code is \(http404Error.0)")
//取
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
//只取需要的
let (justTheStatusCode, _) = http404Error
//组合类型
let http200Status = (statusCode: 200, description: "ok")
print("The status code is \(http200Status.statusCode)")