Menu
CoddyTech

format! 宏

本课属于 Coddy Rust 学习旅程的“基础知识”单元。第 70 课,共 75 课。

在 Rust 中,format! 宏可以让你以清晰且灵活的方式将文本与变量组合起来。这个宏类似于 println!,但它不会将输出打印到控制台,而是返回一个格式化后的字符串,你可以将它存储在变量中,或用于其他操作。

最简单的语法使用未命名占位符 {}:

let name = "Alice";
let age = 30;

let formatted = format!("Name: {}, Age: {}", name, age);
println!("{}", formatted);
// 输出:Name: Alice, Age: 30

你可以直接在占位符中使用变量名:

let name = "Bob";
let age = 25;

let formatted = format!("Name: {name}, Age: {age}");
println!("{}", formatted);
// 输出:Name: Bob, Age: 25

你可以使用数字指定参数的位置:

let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// 输出:second first third

你可以使用格式说明符来控制值的格式:

// 数字格式化
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi);
// "3.14"

// 用零填充
let padded = format!("{:0>5}", "123");
// "00123"
challenge icon

挑战

简单

按照以下规则,编写一个程序,根据姓名和出生年份生成密码:

  • 取姓名的首字母并将其转换为大写
  • 将年份的数字倒序排列
  • 用 "⭐" 符号包住首字母
  • 在包住的首字母和倒序后的年份之间添加 "-"

要反转字符串,请使用以下代码:.to_string().chars().rev().collect::<String>()

亲手试试

use std::io;


fn main() {
    let mut input_name = String::new();
    let mut input_year = String::new();
    io::stdin().read_line(&mut input_name).unwrap();
    io::stdin().read_line(&mut input_year).unwrap();
    let name = input_name.trim();
    let year: i32 = input_year.trim().parse().unwrap();

    // 在下面编写你的代码
    
    
    let secret_code =
    println!("{}", secret_code);
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Rust 在线编译器