【发布时间】:2014-09-29 20:00:56
【问题描述】:
我正在尝试学习 Rust,但我开始思考 chars 是 4 字节宽的。我可以将 char 转换为 u32 并且可以解决(它们都是 4 字节宽),但是,当我从 u32 转换为 char 时,Rust 抱怨:
fn main() {
let pizza_hex: u32 = 0x1f355;
let pizza: char = '????'; // (pizza char: http://www.fileformat.info/info/unicode/char/1f355/index.htm)
// pizza as hex = 1f355
println!("pizza as hex = {:x}", pizza as u32);
// size of pizza = 4
println!("size of pizza = {}", std::mem::size_of_val(&pizza));
// This doesn't work super well
println!("{} == {}", pizza_hex as char, pizza);
}
error[E0604]: only `u8` can be cast as `char`, not `u32`
--> src/main.rs:12:26
|
12 | println!("{} == {}", pizza_hex as char, pizza);
| ^^^^^^^^^^^^^^^^^
有什么想法吗?
【问题讨论】:
标签: rust