E1022#
有歧义的块表达式。在 MoonBit 中,表达式 { value }
有歧义,因为它可以被解释为块表达式或结构体字面量。目前,我们将其视为结构体字面量,但不建议编写这样的表达式。
错误示例#
struct S {
value : Int
}
fn main {
let value = 3
let s = { value }
ignore(s)
}
建议#
如果你想使用结构体字面量构造结构体,你可以在结构体字面量的末尾添加逗号。或者你可以在这个编辑区域中调用格式化程序,让它自动添加逗号。
fn main {
let value = 3
let s = { value, }
ignore(s)
}
如果你将其用作块表达式,请移除大括号,因为它只有一个表达式,等效于表达式 value
:
fn main {
let value = 3
let s = value
ignore(s)
}