E4125#
?
运算符不能与 ..
一起使用。
..
运算符允许链接返回 Unit
的方法调用。这在方法执行副作用(如修改自身)时特别有用,因为它返回 Unit
。
如果将 ?
与 ..
结合使用,方法调用将返回 Result[T, E]
,而不是 Unit
,这不符合 ..
运算符的要求。
错误示例#
type A Double derive(Show)
pub fn A::check(self : A) -> Unit! {
if self._.is_nan() {
fail!("NaN")
}
}
pub fn A::div(self : A, other : A) -> A {
A(self._ / other._)
}
fn main {
let a : A = 1.0
let b : A = 2.0
println(a.div(b)..check?())
}
建议#
使用单点语法调用方法,并将结果存储在变量中。
fn main {
let a : A = 1.0
let b : A = 2.0
println(a.div(b).check?())
}