【发布时间】:2022-11-29 03:30:42
【问题描述】:
在 Rust 中,这段代码是有效的:
let signedInt: i32 = 23*-1;
然而,这不是:
let unsignedInt: u16 = 2;
let signedInt: i32 = unsignedInt*-1;
这是有道理的,因为 Rust 试图将 -1 解释为与 unsignedInt 具有相同类型。
所以需要铸造。但是,当使用更多类型时,上述转换变得非常难看:
-((unsignedInt*320) as f32)
这样做是必要的,因为 -(unsignedInt*320) 是一个无效的表达式。但是上面的代码基本上是不可读的,我想知道使它既有效的 Rust 又可读的最佳方法是什么。
谢谢 !
【问题讨论】:
-
惯用的 Rust 偏爱明确性而不是简洁的语法......一般来说.这只是语言设计哲学的一部分,随着你写更多的 Rust,你会习惯的。这个想法是,它在许多情况下有助于代码的清晰度:而且,根据我自己的经验,确实如此。