E4007#
没有有效载荷的枚举变体被视为单例值。MoonBit 不允许将此类构造函数作为函数调用。
错误示例#
enum Status {
Done
Pending
}
fn main {
let status = Done() // Error: constructor without payload cannot be called with ()
}
建议#
从构造函数中移除函数调用语法:
// ...
fn main {
let status = Done
}
如果确实需要构造函数来构造值,请显式地使用 Unit 作为其参数
enum Status {
Done(Unit)
Pending
}
fn main {
let status = Done(())
}