- 常量用 let ,变量用 var
- // Optional为可选项,// 可用类型值 + ? 代替
let x: Optional = 10
let y: Int? = 5
print(x! + y!)
- 三木运算符
// 三目运算符
x > 5 ? print("大了") : print("小了")
// 可以这样写 `()`,如果不判断的话
x > 5 ? print("大了") : ()
/**
?? 是一个简单的 三目运算
- 如果有值,使用值
- 如果没有值,使用 ?? 后面的值替代
?? 优先级最低
*/
print((x ?? 0) + (y ?? 0))
- if let / var 连用语法,目的就是判断值
let oName:String? = "王" let oAge:Int? = 10 if oName != nil && oAge != nil { print(oName! + String(oAge!) + "岁") } // if let 连用,判断对象的值是否为 nil, {} 内一定有值,可以直接使用,不需要解包 // if var 连用, {} 可以对值进行修改! if var name = oName, let age = oAge { name = "李" // 进入分支之后, name 和 age 一定有值,不需要解包 // name 和 age 的作用域仅在 {} 中 print(name + String(age) + "岁") } else { print("name 或 age 为 nil") }
- guard 守卫 / 守护 // guard let 和 if let 刚好相反
这样可以使可选项去掉
let oName: String? = "王" let oAge: Int? = 10 // guard let 守护一定有值,如果没有直接返回 guard let name = oName, let age = oAge else { print("年龄或者姓名为 nil") return } // 代码执行至此,name 和 age 一定有值 // 通常判断是否有值之后,会做具体的逻辑实现,通常代码多 // 如果用 if let 凭空多了一层分支,guard 是降低分支层次的方法 // guard 的语法是 Swift 2.0 推出的! print(name + String(age) + "岁")
- swtich case
1. swtich 可以针对任意类型的值进行分支,不再局限在整数
2. switch 一般不需要break
3. switch 如果要多值,使用 `,`
4. 所有的分支至少需要一条指令,如果什么都不干,才使用break
func test9(num: String) {
switch num {
case "10", "9":
print("优")
case "8":
break
default:
print("一般")
}
}
- for循环
1 2 3 4 5 6 7 8 9 10 11 | // [0, 5) for i in 0..<5 { print(i) } print( "------" ) // [0, 5] for i in 0...5 { print(i) } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了