format!(“{}”, foo) -> “3735928559”
format!(“0x{:X}”, foo) -> “0xDEADBEEF”
format!(“0o{😮}”, foo) -> “0o33653337357”
8.🌟🌟
fn main() {
assert_eq!(format!(““, 27), “0b11011”);
assert_eq!(format!(””, 27), “0o33”);
assert_eq!(format!(““, 27), “0x1b”);
assert_eq!(format!(””, 27), “0x1B”);
println!(“{:x}!”, 27); // 没 有 前 缀 的 十 六 进 制 => 1b
println!(“{:#010b}”, 27); // 使 用 0 来 填 充 二 进 制 , 宽 度 为 10 => 0b00011011
println!(“Success!”)
}
捕获环境中的值
9.🌟🌟🌟
fn get_person() -> String {
String::from(“sunface”)
}
fn get_format() -> (usize, usize) {
(4, 1)
}
fn main() {
let person = get_person();
println!(“Hello, {person}!”);
let (width, precision) = get_format();
let scores = [(“sunface”, 99.12), (“jack”, 60.34)];
/* 让 下 面 的 代 码 输 出:
sunface: 99.1
jack: 60.3
*/
for (name, score) in scores {
println!(“{name}: __”);
}
}
Others
Example
fn main() {
// 指 数
println!(“{:2e}”, 1000000000); // => 1e9
println!(“{:2E}”, 1000000000); // => 1E9
// 指 针 地 址
let v= vec![1, 2, 3];
println!(“{:p}”, v.as_ptr()); // => 0x600002324050
// 转 义
println!(“Hello {{}}”); // => Hello {}
}