首页 > 解决方案 > 是否有以十六进制表示法声明字符文字的语法?

问题描述

就像是

const X: char = '0x10FFFC';

标签: rustcharhexliterals

解决方案


是的,使用\u{..}

const X: char = '\u{10FFFC}';

操场

这种情况的一个技巧是使用编译器。如果您尝试以下代码,它将为您提供一个很好的提示,例如:

const X: char = 0x10FFFC as char;
error: only `u8` can be cast into `char`
 --> src/lib.rs:1:17
  |
1 | const X: char = 0x10FFFC as char;
  |                 ^^^^^^^^^^^^^^^^ help: use a `char` literal instead: `'\u{10FFFC}'`
  |
  = note: `#[deny(overflowing_literals)]` on by default

推荐阅读