4. 单子
在 C# 和 Kotlin 中,?. 运算符是一种在可能为空的值上查找属性或调用方法的方式。
如果接收者是 null,则整个表达式为空。
否则,底层的非 null 值接收该调用。
?. 的使用可以串联起来;在这种情况下,第一个 null 结果会终止这一查找链。
像这样串联空值检查,比编写和维护深层嵌套的 if 要方便得多。
类似地,异常比手动检查并传播错误码方便得多。 同时,日志记录最容易通过专门的日志框架来实现,而不是让每个函数同时返回其日志结果和返回值。 链式空值检查和异常通常要求语言设计者预先考虑这种用例,而日志框架通常利用副作用,将记录日志的代码与日志的累积解耦。