Rust:type_cast - halmk/Library GitHub Wiki

型変換

Overview

型変換の方法について

Code

  • 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"});
}

Detai

⚠️ **GitHub.com Fallback** ⚠️