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