知识卡片

可选绑定优于强制拆包

专业/工作 · 709.b

内容

给 [[Optional 用类型系统表达”值可能不存在”]] 的可选值取出内部值有两条路:用感叹号强制拆包,若实际为 nil 会直接崩溃;或用 if let 做可选绑定,只在确实有值时才进入分支执行、否则安全地走 else。两种写法语法上都能通过编译,但强制拆包把”这里绝对不会是 nil”的判断责任丢给了程序员的自信而非编译器的保证,一旦判断错误就是运行时崩溃。可选绑定则让”有没有值”这件事在控制流层面显式分支,是更安全的默认选择。

参考来源

《Swift全解析:新式iOS实战开发》第2章《Swift语法基础》