E3010

E3010#

只有带标签参数才可以有默认值。

错误示例#

fn greet(name : String = "World") -> Unit {
  //                   ^ Error: Only labelled arguments can have default value.
  println("Hello, " + name + "!")
}

建议#

如果你想提供默认值,用 ~ 定义一个带标签的参数。

fn greet(name~ : String = "World") -> Unit {
  println("Hello, " + name + "!")
}

fn main {
  // 可以这样调用:
  greet() // 使用默认值 "World"
  greet(name="Alice") // 使用提供值 "Alice"
}

或者如果你想保持它为一个位置参数,移除默认值:

fn greet(name: String) -> Unit {
  println("Hello, " + name + "!")
}