什么是 Optional?
Optional 是一种用于表示“可能存在或可能不存在的值”的类型。它最早在函数式编程语言中流行,如今已被广泛应用于如 Java、Swift、Kotlin 等现代编程语言中,用以替代传统的 null 值,从而避免臭名昭著的“空指针异常”(NullPointerException)。
为什么使用 Optional?
- 明确表达“值可能为空”的语义
- 强制开发者显式处理空值情况
- 减少运行时错误,提高程序稳定性
- 使 API 接口更清晰、更具可读性
语言中的 Optional 示例
Java
Optional<String> name = Optional.ofNullable(getName());
name.ifPresent(n -> System.out.println("Hello " + n));
String result = name.orElse("Guest");
Swift
var name: String? = getName()
if let unwrapped = name {
print("Hello $ unwrapped)")
}
print("Hello $ name ?? "Guest")")
Kotlin
val name: String? = getName()
println("Hello $ {name ?: "Guest"}")
name?.let { println("Hello $ it") }
互动小测试
下面哪个写法更安全?