E3015

E3015#

参数已经有默认值 None

在 MoonBit 中,可选参数有如下两种形式:

  • 有参数的可选值:

    fn f(a~ : Int = 0) -> Unit {
      // ...
    }
    
  • 无参数的可选值。在这种情况下,如果参数没有提供,则默认为 None

    fn f(a? : Int) -> Unit { // a 的类型为 Int?
      // ...
    }
    

因此,如果可选参数的默认值为 None,提供默认值就是多余的,应该删除。

错误示例#

fn f(a? : Int = None) -> Unit { // Error: The parameter a? already has default value `None`.
  println(a)
}

建议#

从可选参数中移除 = None 部分

fn f(a? : Int) -> Unit {
  println(a)
}