G.TYP.CHR.01 整数到字符的类型转换应注意有效范围
【级别】 建议
【描述】
在 Rust 中,字符类型 char
本质上是一个 Unicode
码点(标量值) ,4 个字节大小。 char
码点的有效 范围为 [0, 0xD7FF]
和 [0xE000, 0x10FFFF]
。
u8
类型可以直接转换为 char
,而 u32
类型转换为 char
是可能失败的。
【正例】
Rust
let c = char::from(97u8); assert_eq!(c, 'a');
let c = char::from_u32(0x110000); assert_eq!(c, Some('❤ '));
let c = char::from_u32(0xDE01); assert_eq!(c, None);