Rust:type_cast - halmk/Library GitHub Wiki
型変換の方法について
- integer ↔ float
fn main(){
let a: u32 = 6;
let b: f64 = 0.25;
println!("{}", (a as f64) * b); // 1.5
println!("{}", b as u32); // 0
}- {&str,String} ↔ {number}
fn main(){
let a: f64 = 4.3 + 0.1;
let s = "123";
let ch = '5';
println!("{}", a.to_string()); // 4.399999... (String型)
println!("{}", format!("{:.2}", a)); // 4.40 (String型)
println!("{}", &a.to_string()); // 4.39999... (&str)
println!("{}", &format!("{:.0}", a)); // 4 (&str)
println!("{}", ch as u8 - b'0'); // 5 (u8)
println!("{}", s.parse::<u32>().unwrap()); // 123 (u32)
}- char ↔ integer
fn main() {
let ch = '5';
let a: i32 = 5;
println!("{}", ch as u8 - b'0'); // 5 (u8)
let c: char = std::char::from_digit(a as u32, 10).unwrap();
println!("{}", c); // '5' (char)
}- Vec<char> ↔ String
fn main() {
// ['b','c','a'] ← "bca"
let mut s:Vec<char> = read::<String>().chars().collect();
s.sort(); // ['a','b','c']
// "abc" ← ['a','b','c']
let t:String = s.iter().cloned().collect();
println!("{}", if t == "abc" {"Yes"} else {"No"});
}