In Python you can convert an integer into a character and a character into an integer with ord()
and chr()
:
>>>a = "a"
>>>b = ord(a) + 1
>>>b = chr(b)
I am looking for a way to do the same thing in Rust, but I have found nothing similar yet.
You can use the available Into
and TryInto
implementations:
fn main() {
let mut a: char = 'a';
let mut b: u32 = a.into(); // char implements Into<u32>
b += 1;
a = b.try_into().unwrap(); // We have to use TryInto trait here because not every valid u32 is a valid unicode scalar value
println!("{}", a);
}
ord
can be done using the as
keyword:
let c = 'c';
assert_eq!(99, c as u32);
While chr
using the char::from_u32()
function:
let c = char::from_u32(0x2728);
assert_eq!(Some('✨'), c);
Note that char::from_u32()
returns an Option<char>
in case the number isn't a valid codepoint. There's also char::from_u32_unchecked()
.
© 2022 - 2024 — McMap. All rights reserved.
as u32
, but I don't see it mentioned on the linked question. – Shivers