I/O 就是输入(Input)/输出(Output)。Rust 语言 IO 输入输出的三大块内容:读取数据、写入数据、命令行参数。
读取和写入
Rust 标准库 IO 输入输出以下 2 个 Trait
特质 | 说明 |
---|---|
Read | 用于从输入流读取字节数据 |
Write | 用于向输出流中写入数据,包含字节数据和 UTF-8 数据两种格式 |
fn main() {
let mut in_word = String::new();
let result = std::io::stdin().read_line(&mut in_word).unwrap();
println!("您的输入是: {}", in_word);
println!("读取的字节数为: {}", result);
}
代码语言:txt复制std::io::stdin() 返回标准输入流 stdin 的句柄。read_line() 是标准入流 stdin 的句柄上的一个方法,从标准输入流读取一行的数据。返回值是一个 Result 枚举,而 unwrap() 则是一个帮助方法,用于简化可恢复错误的处理。它会返回 Result 中存储的实际值。read_line() 方法会自动删除行尾的换行符
n
let result1 = std::io::stdout().write("面向加薪学习 ".as_bytes()).unwrap();
println!("写入的字节数为: {}n", result1);
let result2 = std::io::stdout().write("www.go-edu.cn ".as_bytes()).unwrap();
println!("写入的字节数为: {}n", result2);
std::io::stdout()
会返回标准输出流stdout
的句柄。write()
是标准输出流stdout
的句柄上的一个方法,用于向标准输出流写入字节流内容。write()
方法的返回值值一个Result
枚举,而unwrap()
则是一个帮助方法,用于简化可恢复错误的处理。它会返回 Result 中存储的实际值。write()
方法并不会输出结束时自动追加换行符n
。如果需要换行符则需要手动添加
命令行参数
Rust 语言使用 std::env::args()
函数返回所有的命令行参数,返回的结果包含了程序名。
如果要传递多个参数,多个参数之间必须使用 空格( ' '
) 分隔。如果参数里有空格,则参数必须使用 双引号(**"
**)包起来。
let input_args = std::env::args();
for arg in input_args{
println!("命令行参数:[{}]",arg);
}
//cargo build 生成二进制文件
//进入target/debug目录
// ./io25 Go语言极简一本通 Go语言微服务架构核心22讲 从0到Go语言微服务架构师
// 命令行参数:[./io25]
// 命令行参数:[Go语言极简一本通]
// 命令行参数:[Go语言微服务架构核心22讲]
// 命令行参数:[从0到Go语言微服务架构师]