Rust 输出到命令行学习笔记

介绍

在 Rust 中,输出到命令行是一个非常重要的功能。本文将介绍几种不同的方式来输出消息和数据。

println! 宏

println! 是一个宏,可以将内容输出到屏幕上,并在最后添加一个换行符。例如:

rustCopy Code
fn main() { println!("Hello, world!"); }

输出:

Copy Code
Hello, world!

该宏还支持格式化字符串。例如:

rustCopy Code
fn main() { let name = "Alice"; let age = 30; println!("{} is {} years old.", name, age); }

输出:

Copy Code
Alice is 30 years old.

其中 {} 在字符串中表示一个占位符,可以在后面的参数中指定其值。

print! 宏

print! 宏与 println! 类似,但不会在最后添加一个换行符。例如:

rustCopy Code
fn main() { print!("Hello, "); print!("world!"); }

输出:

Copy Code
Hello, world!

eprint! 和 eprintln! 宏

eprint!eprintln! 宏用于将错误消息输出到标准错误流而不是标准输出流。与 print!println! 不同的是,它们不会影响标准输出流中的任何内容。例如:

rustCopy Code
fn main() { eprintln!("Error: something went wrong."); }

输出:

Copy Code
Error: something went wrong.

使用格式化宏显示数据

除了 println!print! 宏外,Rust 还提供了多个格式化宏,可以将数据格式化为特定的字符串。例如,format! 宏用于创建格式化的字符串:

rustCopy Code
fn main() { let name = "Bob"; let age = 25; let message = format!("{} is {} years old.", name, age); println!("{}", message); }

输出:

Copy Code
Bob is 25 years old.

format! 宏类似于 println! 宏,但不会将字符串输出到屏幕上,而是将其作为结果返回。

使用标准库功能输出数据

除了简单的文本消息之外,您可能需要在命令行中输出其他类型的数据,如数字、向量等。为此,Rust 标准库提供了许多辅助函数以便于你将这些信息输出为字符串。

例如,如果您想要在屏幕上输出一个向量,可以使用 println! 宏和 join 方法:

rustCopy Code
fn main() { let numbers = vec![1, 2, 3]; println!("Numbers: {}", numbers.iter().map(|n| n.to_string()).collect::<Vec<_>>().join(", ")); }

输出:

Copy Code
Numbers: 1, 2, 3

在这个例子中,我们首先将向量中的每个数字转换为字符串,然后使用 join 方法将它们连接起来。

结论

这篇文章介绍了 Rust 中输出到命令行的几种不同方法。尽管这些输出功能看起来很简单,他们却为Rust中大量的数据处理提供了基础。