見出し画像

文字型・文字列型

文字型

fn main() {
    // 文字型
    let c1 = 'a';
    let c2 = '@';
    let c3 = '🍣';
    println!("c1: {}, c2: {}, c3: {}", c1, c2, c3);
}
$ cargo run

c1: a, c2: @, c3: 🍣

文字列型

文字列スライスとString型が存在する。
文字列スライスは、実行時に型が決まっている必要があるもの。

fn main() {
    // 文字列型
    let s1 = "Hello, world!"; 
    println!("&str: {}", s1);
}
$ cargo run

&str: Hello, world!

String型は実行時に型が決まらない場合に使用する。
String::from("")の形で指定する方法と、.to_string()を使う方法がある。

fn main() {

    let s2 = String::from("Rust"); 
    println!("String::from(\"Rust\"): {}", s2);
    
    let s3 = "Universe".to_string(); 
    println!("\"Universe\".to_string(): {}", s3);

}
$ cargo run

String::from("Rust"): Rust
"Universe".to_string(): Universe

String型はpush_strで文字列を追加することができる。

fn main() {

    let mut s4 = String::from("Hello");
    s4.push_str(", Sunshine!");
    println!("push_strで追加すると {}", s4);

}
$ cargo run

push_strで追加すると Hello, Sunshine!

文字列の連結

"+"を使って文字列を連結する方法

fn main() {

    // 文字列の連結
    let s5 = String::from("Hello");
    let s6 = String::from(", ");
    let s7 = String::from("World!");
    println!("文字列の連結{}", s5 + &s6 + &s7); 

}
$ cargo run

Hello, World!

Format!マクロを使って文字列を連結する方法

fn main() {
    // Format!マクロを使用して文字列を連結
    let s8 = String::from("Hello");
    let s9 = String::from(", ");
    let s10 = String::from("World!");
    println!("Format!マクロを使用して文字列を連結: {}", format!("{} {} {}", s8, s9, s10));
}
$ cargo run

Hello, World!

この他にも文字列の操作にはたくさんある。
文字列操作に関する公式ドキュメントを参照しよう。


この記事が気に入ったらサポートをしてみませんか?