首页 文章

Rust是否具有Python的unichr()函数?

提问于
浏览
8

Python具有unichr()(或Python 3中的_786850)函数,它接受一个整数并返回一个Unicode代码点为该数字的字符 . Rust有相同的功能吗?

1 回答

  • 13

    当然,虽然它是一个内置的运算符 as

    let c: char = 97 as char;
    println!("{}", c);   // prints "a"
    

    请注意 as 运算符仅适用于 u8 数字,否则会导致编译错误:

    let c: char = 97u32 as char;  // error: only `u8` can be cast as `char`, not `u32`
    

    如果您需要一个字符串(以完全模拟Python函数),请使用 to_string()

    let s: String = (97 as char).to_string();
    

    还有char::from_u32函数:

    use std::char;
    let c: Option<char> = char::from_u32(97);
    

    它返回 Option<char> ,因为并非每个数字都是有效的Unicode代码点 - 唯一有效的数字是0x0000到0xD7FF,从0xE000到0x10FFFF . 此函数适用于比 as char 更大的值集,并且可以转换大于一个字节的数字,从而可以访问整个Unicode代码点 .

    我编译了一个set of examples on the Playground .

相关问题