E4083#
with 模式中的默认值不能引用完整模式引入的绑定变量。默认表达式在外围作用域中求值,而该绑定变量在那里不可用。
错误示例#
///|
pub fn value_or(value : Int32?, result : Int32) -> Int32 {
match value {
Some(result) | (None with result = result) => result
}
}
修改建议#
请使用外围作用域中可用的值。
///|
pub fn value_or(value : Int32?, fallback : Int32) -> Int32 {
match value {
Some(result) | (None with result = fallback) => result
}
}