加了模式守卫( Pattern Guard )可与is
表达式配合使用引入新的变量,比如:
pub fn infer_type(env: Map[String, Type], expr: Expr) -> Type! {
match expr {
Lit(_) => Int,
Var(x) if env[x] is Some(ty) => ty,
Var(x) => fail!("{x} is undefined"),
_ => ...
}
}
这类特性能简化类型检查和错误处理逻辑,整体代码更加清晰干净。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.