E4114#
只有顶层函数可以有带标签的参数。
当尝试在本地函数或匿名函数中使用带标签的参数时,就会发生此错误。
错误示例#
pub fn f() -> Unit {
fn h(x~: Int) -> Unit {
// ^^ Error: Only toplevel functions can have labelled arguments.
println(x)
}
h(x=42)
}
建议#
要修复此错误,您可以执行以下操作:
将函数移动到模块的顶层
fn h(x~: Int) -> Unit {
println(x)
}
pub fn f() -> Unit {
h(x=42)
}
移除带标签的参数
pub fn f() -> Unit {
fn h(x: Int) -> Unit {
println(x)
}
h(42)
}