gpt4 book ai didi

rust - 如果不在Rust中使用变量,则无法打印i64类型的绝对值

转载 作者:行者123 更新时间:2023-12-03 11:33:37 24 4
gpt4 key购买 nike

我想实现名为abs()的方法。当我使用利用let的变量时,一切工作正常:

fn main() {
let x = -5i64;

println!("x == {}", x.abs());
}
它产生正确的输出:
x == 5
但是当我想在没有任何 let语句的情况下实现此功能时:
fn main() {
println!("x's abs == {}", -5i64.abs());
}
我得到以下输出:
x's abs == -5
预期产量:
x's abs == 5
这背后的逻辑是什么?如何在不使用变量的情况下实现文字的绝对值?
更新
我将完整的文字放在花括号中,然后为 abs调用指定了类型:
fn main() {
println!("x's abs == {}", (-5i64).abs());
}
有用!
但是我仍然不明白为什么会这样简单地提及: -5i64不起作用。

最佳答案

这是因为方法调用的precedence-高。-5i64.abs()解析为take absolute value of 5, then negate it

关于rust - 如果不在Rust中使用变量,则无法打印i64类型的绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66084138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com