2020-06-18 00:42·du1dume
今天我们来学习下 Rust 中的命令行打印。代码如下:注释的标号和下面的解释对应。
use std::f64; // 1use std::io::{self, Write}; // 2fn main() { println!("打印空行"); // 3 println!(); println!("Hello, world!"); println!("{}, {}!", "Hello", "world"); // 4 print!("Hello, "); // 5 println!("world!"); println!( "参数顺序排列: {0}, {1}! 参数逆序排列: {1}, {0}! ", "Hello", "world" ); // 6 println!( "参数也是可以有名字的: \"{aaa}, {bbb}!\"", aaa = "Hello", bbb = "World" ); // 7 println!( "数字格式化Pi。保留小数点三位: {0:.3},没有小数点:{0:.0}", f64::consts::PI ); // 8 println!( "前导位补零:{0:>0width$}。前导位补空格:{0:>width$}。显示16进制:{0:#x}", 1111, width = 10 ); // 9 let _ = write!(&mut io::stdout(), "写到系统标准输出流"); // 10 println!(); println!("请输入:"); let mut input = String::new(); if let Ok(n) = io::stdin().read_line(&mut input) { // 11 println!("你输入的是:{}(包含{}个字节)", input, n); } else { eprintln!("如果有错将会打印这句话"); // 12 } }
-
Rust 中导入包的方法。这个包中有后面用到的 PI。
-
系统标准输出流。单独导入 Write (可类比为其他语言中的接口)。
-
println!(注意结尾的叹号)。作用和其他语言中的 println 一样,打印并换行。但在 Rust 中这叫做宏。凡是结尾带叹号的调用都是调用宏。
-
{} 表示占位符,具体值由后面的参数按顺序提供。
-
打印不换行。
-
占位符中加入数字表示后面提供的要输出的值的顺序,从零开始计数。
-
参数还可以有名字,也就是命名参数。在占位符中使用变量名来使用参数。
-
占位符中格式化数字的方法。
-
(模板字符串,数字,宽度变量)这种模式就可以实现数字的补零、补空格以及进制转换显示。占位符中调用变量的方式为 width$ 和命名参数不同。
-
使用系统本身的输出流进行打印。
-
使用系统本身的输入流进行等待用户的输入。输入完回车后打印输入内容和字节数。
-
eprintln! 宏和 println! 一样,但底层使用的是系统标准错误流。io::stderr
如有任何问题,请添加微信公众号“读一读我”。