moonbit 的重载

我认为moonbit很有必要完善函数重载

pub fn op_sub(self : Int, that : Double) -> Double {
  self.to_double() - that
}

考虑考虑吧 :melting_face:

[1, 2, 3] * 2 => [2, 4, 6]

pub fn op_mul(self: Array[Int], other: Int) -> Array[Int] {
  // [1, 2, 3] * 2 => [2, 4, 6]
  self.map(fn(x) { x * other })
}

文档里有啊

你肯定没看懂我的意思

pub fn op_sub(self : Int, that : Double) -> Double {
  self.to_double() - that
}

你想说的重点在这个Double吧 :slight_smile:

这种重载会让类型系统变得比较复杂,所以没有支持。不过现在加了 overloaded int literal,有些情况会好写一点,比如:

fn main {
  let x = 42.0
  println(x + 1) // 不需要写 1.0 或者 (1).to_double()
}