rust 有空安全机制为什么不搞一套和 kotlin 和 dart 那样的空安全语法糖来替代手写 Option ,感觉写起来挺啰嗦的。
对比下:
- kotlin
// 声明可空
var number: Int? = null
// 取值,为空时给默认值
number ?: 0
- dart
// 声明可空
int? number = null;
// 取值,为空时给默认值
number ?? 0
- rust
// 声明可空
let number:Option<i32> = None;
// 取值,为空时给默认值
number.unwrap_or(0);
可以看到 kotlin 和 dart 有语法糖写起来舒服多了,rust 为啥不支持下,写成这样:
let number:i32? = None;
number ?? 0
当然还有更方便的链式调用,order?.user?.name 这种