既然被邀请了,那容我说点不好听的, 前一个版本的语法, // 上一版moonbit fn bar() -> A!Error { foo!() // !表示错误从当前函数调用,传给调用它的函数。
let ret = foo?() // 返回result这个结构体 match foo?() { // ... } } // 等效于rust的写法 fn bar() -> Result { foo()?; // ? 表示错误从当前函数调用,传给调用它的函数。
let ret = foo(); // 返回result这个结构体 match foo() { // 常见的处理错误处理…。