E4065

E4065#

重载操作符应接受正确数量的参数。

你可以参考 操作符重载 部分,获取可以重载的操作符列表,下面是每个操作符应该接受的参数数量列表:

运算符

方法名称

参数数量

_[_]

op_get

2

_[_] = _

op_set

3

_[_:_]

op_as_view

3

错误示例#

///|
struct A(Array[Int])

///|
fn A::op_get(self : A, idx : Int, offset? : Int) -> Int {
  //  ^~~~~~
  // Error: overloaded operator "op_get" should accept 2 arguments, but it accepts 3 arguments
  let idx = match offset {
    None => idx
    Some(offset) => idx + offset
  }
  return self.0[idx]
}

建议#

修改该方法以匹配操作符的预期参数数。

///|
struct A(Array[Int])

///|
fn A::op_get(self : A, idx : Int) -> Int {
  return self.0[idx]
}