首页 > 解决方案 > 如何在 Rust 中从另一个字符中减去一个字符?

问题描述

在 Java 中,我可以做到这一点。

int diff = 'Z' - 'A'; // 25

我在 Rust 中尝试过同样的方法:

fn main() {
    'Z' - 'A';
}

但编译器抱怨:

error[E0369]: binary operation `-` cannot be applied to type `char`
 --> src/main.rs:2:5
  |
2 |     'Z' - 'A';
  |     ^^^^^^^^^
  |
  = note: an implementation of `std::ops::Sub` might be missing for `char`

如何在 Rust 中进行等效操作?

标签: rustchar

解决方案


该操作在 Unicode 世界中没有意义,在 ASCII 世界中几乎没有意义,这就是 Rust 不直接提供它的原因,但是根据您的用例有两种方法可以做到这一点:

  • 将字符转换为它们的标量值:'Z' as u32 - 'A' as u32
  • 使用字节字符文字:b'Z' - b'A'

推荐阅读