知识卡片

可空链式调用与nil合并运算符

专业/工作 · 743.c

内容

可空链式调用用?把一连串对可空实例的操作串起来(如errorDescription?.uppercased()),只要链条中任意一环是nil,整条链立即短路返回nil,不会继续往下执行也不会崩溃,省去逐层判空的嵌套代码;对可空实例本身的原地修改(如upCaseErrorDescription?.append(...))也遵循同样的短路规则。当最终只是想在”有值就用该值、没值就用默认值”之间二选一时,nil合并运算符??errorDescription ?? "No error")比手写if let...else更直接。两者共同点是都把”处理nil”这件事从显式的条件分支,压缩成了内嵌在表达式里的一个符号,让可空类型的日常使用不至于每次都要写一整段if语句,是比[[强制展开与可空实例绑定的安全性分野]]里if let更轻量的写法。

参考来源

《Swift编程权威指南》第8章《可空类型》