Beginning Rustの「基本データ」の第6章に0~255までのu8形式の整数を文字表示できる整数の範囲から表示するのに、以下のようなコードが出てきますが、
fn main() {
for n in 32..127 {
println!("{}: [{}]", n, n as u8 as char);
}
for n in 160..256 {
println!("{}: [{}]", n, n as u8 as char);
}
}
ここで、
n as u8 as char
の代わりに、
どの数(u8以外)でも一文字に変換したいときには、char::from_u32()を使えとあって、それを使うと以下のようなコードになります。
fn main() {
for n in 32..127 {
println!("{}: [{}]", n, char::from_u32(n).unwrap());
}
for n in 160..256 {
println!("{}: [{}]", n, n as u8 as char);
}
}
char::from_u32()関数の解説は、
https://doc.rust-lang.org/core/primitive.char.html#method.from_u32
にあるように戻りの形はSome()なので、中身を取り出すためにunwrap()を使っています。オリジナルよりもこの方が見やすいように思います、処理速度は遅くなりそうですが。
admin