swift5.0以后ABI已经趋于稳定语法不会有大变化 也是学习的最佳时机
- var 定义变量
- let 定义常量 常量只能赋值一次 使用之前必须赋值
例如:
let view = UIView()
view.frame = CGRect(x:0, y:0, width:10, height:10)
view.backgroundColor = UIColor.blue
let imageView = UIImageView(image:UImage(named:"xxxx"))
和oc是有很多相通的
- 布尔 let bool = true
- 字符串 let string = "xxx"
- 字符 let character:Character = "🐩" (ASCII字符、Unicode字符)
- 整数 let intDecimal = 17 //十进制 let intBinary = 0b10001 //二进制 let intOctal = 0o21 //八进制 let intHexadecimal = 0x11 //十六进制
- 浮点数 let DoubleDecimal = 122.0
- 数组 let array = [1,2,3]
- 字典 let dictionary = ["" :"", "":""]
- 元组
流程控制
- if-else if 后面的条件 只能是Bool类型
let age = 6
if age > = 18 {
} else if age >= 16 {
} else {
}
- while
var num = 5
while num > 0 {
num -= 1 //swift3.0以后就没有-- ++
}
- repeat-while 和oc的do-while是一回事
var num = -1
repeat {
print ("number is \(num)")
num += 1
} while num < 2
- for 说一下区间运算符吧 1.闭区间 a...b 2. 半开区间 a..<b a <= 取值 < b 3.让一个区间尽可能的远 [2...] [..<2]
- 带间隔的区间值
let names = ["a1","b2","c3"]
for i in 0...2 {
print(names[i])
}
for var i in 1...3 {
i += 1
print(i)
}
for _ in 1...3 {
print("o")
}
for _ in 1..<3 {
print("p")
}
for name in names[2...] {
print(name)
}
带间隔的区间值 (4-11 累加2)
for ticMark in stride(from:4,through:11,by:2) {
print(ticMark)
}
- Switch case、default后面不写{} 默认不写break 也不会贯穿后面条件 fallthrough是可以贯穿的
switch num {
case 1:
print(1)
fallthrough
case 2:
print(2)
default:
print("other")
}
- where
var numbers = [10,-12,19,-34]
var sum = 0
for n in numbers where n > 0 {
sum += n
}
print(sum) //29