假设我有返回可选的函数。如果错误则为零,如果成功则为值:funcfoo()->Bar?{...}我可以使用以下代码来使用此功能:letfooResultOpt=foo()ifletfooResult=fooResultOpt{//continuecorrectoperationshere}else{//handleerror}但是对于任何非平凡的代码,这种方法几乎没有问题:最后执行错误处理,很容易遗漏一些东西。如果错误处理代码跟在函数调用之后,情况会好得多。正确的操作代码缩进一级。如果我们有另一个函数要调用,我们必须再缩进一次。用C通常可以这样写:Bar*fooResult=foo()