我正在调试一些代码来计算矩阵的行列式,当我找到原因时,我非常失望.简单地说,这个代码:
-1i64.pow(i as u32)
始终结果为-1
.我发现我可以使用i64::pow
来代替,或者将-1i64
括在括号中来解决这个问题:
i64::pow(-1, i as u32)
(-1i64).pow(-1, i as u32)
我很失望,也很伤心--因为Rustc让我用第一个例子:
|
3 | println!("{}", -1.pow(i as u32));
| ^^^
|
help: you must specify a concrete type for this numeric value, like `i32`
|
3 | println!("{}", -1_i32.pow(i as u32));
| ~~~~~
我试了加下划线和不加下划线,结果都是-1.我的问题是,为什么会这样?括号在这里的作用是什么?-1i64.pow(i as u32)
-actually能做什么?我在文档、铁 rust 书或Stack Overflow中找不到任何东西.