最近又尝试了一下 moonbit,各个语言特性用起来真是很舒服,不过感觉某些地方用起来却有点别扭,这点应该有点个人主观了
trait T {
m1(Self) -> Int
m2(Self) -> Int
}
struct S {}
impl T for S with m1(self) { // 这个地方打字有点多
...
}
impl T for S with m2(self) {
...
}
impl ... with 语句首行感觉很多字,有时一眼看不清所有轮廓,同一个 trait 不同方法实现都需要再写一次 impl ... with,有点重复,与其他 trait 方法定义同一文件可以交错分布,感觉 rust 的 impl 定义方式更简洁一些,代码更聚合一些。
trait 的方法如果有默认实现需要在用 =_ 来标识,感觉有点突兀,没有 rust 那样语法上面更统一。