interface支持泛型,增加any或者object类型

  1. moonbit 的 interface似乎不支持泛型,只能构造一个泛型struct

image

struct Function[Args] {
  apply: (Args) -> Unit
}
  1. 如果想要使用map用于存储上面定义的Function结构体(不同Args类型的实例),似乎没有办法实现
  1. 为泛型结构体实现Default接口报错
    image
fn Function::default[X]() -> Function[X] {
  ...
}

即可。但我们不支持 specialization,所以只能对所有类型参数 X 定义一个统一的实现

1 个赞
  1. interface 的泛型暂时确实没有,但以后应该是会有的。可能是 interface 带额外参数,也可能使 associated type
  2. 这个也是暂时不支持,但 object/dynamic interface 也是应该会加的。到时候可以写类似 interface I 的类型,对它调用 I 里的方法