8
Python具有unichr()
(或Python 3中的chr()
)函數,該函數接受一個整數並返回具有該編號的Unicode代碼點的字符。 Rust是否具有相同的功能?Rust是否具有與Python的unichr()函數等效的功能?
Python具有unichr()
(或Python 3中的chr()
)函數,該函數接受一個整數並返回具有該編號的Unicode代碼點的字符。 Rust是否具有相同的功能?Rust是否具有與Python的unichr()函數等效的功能?
當然,儘管它是一個內置的操作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);
,因爲並非每一個數字是一個有效的Unicode代碼點返回Option<char>
- 唯一有效的數字是0x0000到0xD7FF和0xE000至0x10FFFF之間。此函數適用於比as char
更大的一組值,並且可以轉換大於一個字節的數字,從而使您可以訪問整個Unicode代碼點範圍。我編了一個set of examples on the Playground。
有趣的是'讓c4 = 0xd801作爲字符; println!(「{:?}」,c4);'有警告。 –
它工作不正確 - 它將'0xd801'解釋爲'u8',將值包裝爲'1u8'並將其轉換爲'char'。 [Here](http://is.gd/mI5wme)是一個演示。 –
對,我只是說它會發出警告並返回一個值。 –