0
点赞
收藏
分享

微信扫一扫

rust 二进制, 八进制, 十六进制

format!("{}", foo) -> "3735928559"

format!("0x{:X}", foo) -> "0xDEADBEEF"

format!("0o{:o}", 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 {}

}

🌟🌟 默认情况下,通过空格来填充字符串

fn main() {

// 下 面 两 个 都 是 通 过 5 个 空 格 来 填 充

println!("Hello {:5}!", "x"); // => "Hello x !"

println!("Hello {:1$}!", "x", 5); // => "Hello x !"

/* 填 空 */

assert_eq!(format!("Hello __!", 5, "x"), "Hello x !");

assert_eq!(format!("Hello __!", "x", width = 5), "Hello x !");

println!("Success!")

}

4.🌟🌟🌟 左对齐, 右对齐, 使用指定的字符填充

fn main() {

// 左 对 齐

println!("Hello {:<5}!", "x"); // => Hello x !

// 右 对 齐

assert_eq!(format!("Hello __!", "x"), "Hello x!");

// 居 中 对 齐

assert_eq!(format!("Hello __!", "x"), "Hello x !");

// 左 对 齐 , 并 使 用 `&` 填 充

assert_eq!(format!("Hello {:&<5}!", "x"), __);

println!("Success!")

}

5.🌟🌟 我们还能使用 0 来填充数字

fn main() {

println!("Hello {:5}!", 5); // => Hello 5!

println!("Hello {:+}!", 5); // => Hello +5!

println!("Hello {:05}!", 5); // => Hello 00005!

println!("Hello {:05}!", -5); // => Hello -0005!

/* 填 空 */

assert!(format!("{number:0>width$}", number=1, width=6) == __);

println!("Success!")

}

精度

6.🌟🌟 浮点数精度

/* 填 空 */

fn main() {

let v = 3.1415926;

println!("{:.1$}", v, 4); // same as {:.4} => 3.1416

assert_eq!(format!("__", v), "3.14");

assert_eq!(format!("__", v), "+3.14");

assert_eq!(format!("__", v), "3");

println!("Success!")

}

7.🌟🌟🌟 字符串长度

fn main() {

let s = "Hello, world!";

println!("{0:.5}", s); // => Hello

assert_eq!(format!("Hello __!", 3, "abcdefg"), "Hello abc!");

println!("Success!")

}

举报

相关推荐

0 条评论