format!("{:b}", 5) // 101
format!("{:08b}", 5); // 00000101
fromat!("{:#b}", 5); // 0b101 (0b は2進数であることを表す)
format!("{:#08b}", 5); // 0b000101
08 は「0埋めをして8桁以上にして出力する」ということを表す
16進数にしたい場合は b の代わりに x を使う。
Debug の実装には #[derive(Debug)]
を使うことが推奨されている。
Rust には名前付き引数はないが、format! マクロでは名前付き引数が使える
format!("{argument}", argument = "test"); // => "test"
format!("{name} {}", 1, name = 2); // => "2 1"
format!("{a} {c} {b}", a="a", b='b', c=3); // => "a 3 b"
引数で名前を指定していない場合は、スコープにある変数名を見る。
let argument = 2 + 2;
format!("{argument}"); // => "4"
fn make_string(a: u32, b: &str) -> String {
format!("{b} {a}")
}
make_string(927, "label"); // => "label 927"