搭建环境
菜鸟教程(注意务必要有visual c++ tools)
基本语法
格式化输出 :format!语句的使用
占位符{}
输出 这个功能我一般用来调试 在程序运行的某个阶段输出一段信息让我判断程序的走向以及错误
rust的输出有 print!("")和println!() 注意记得写 !号。 其区别就是一个会换行一个不换行 这些没啥好说的。
重点是 rust的占位符就有点和我们平时学习c语言 c++不一样了 ,用是{}这两个符号。
print!("test is {}",a)
println!("test is {}",b)
菜鸟教程上还有一种操作 print!("test is {0} and {0}",a) 这种方式可以用于重复输出 它是将a当作一个数组,0标识下表为0
let a = 4;
println!("test is {0},{0}",a)
但是经过实验以下两种操作行不通,果然骚操作在rust上会骚断腿。
let a = "123";
println!("test is {0},{1},{2}",a);
//会报错
let a = [1,2,3];
println!("test is {0},{1},{2}",a);
//会报错
/**`[{integer};4]`不实现`std::fmt::Display`
**没有为`[{integer};4]实现特征“std::fmt::Display”`
**在格式字符串中,您可以使用`{:?}`(或{:?}为了漂亮的印刷品)
**`std::fmt::Display::fmt`rustcE0277所需
**主要单位:卢比(5,40):错误源于此处的宏
**/
实际上rust {0},{1} 代表的是后面的所有数据为一个数组 ,并不是吧单个a看成一个数组
let a = "123";
let b = "1";
let c = "3";
println!("test is {0},{1},{2}",a,b,c);
//他是吧 a,b,c 看成一个[a,b,c]的数组
//所以就可以做如下操作
println!{"test is {1},{1},{1}",a,b,c};
输出 "test is 1,1,1"
占位符 {:?}
个人理解为:会把构造体的形式输出出来;只有在debug模式的时候才可以使用 带上 #[derive(Debug,)]
pub struct gradle{
isHead:bool,
head:String,
list:i32
}
let a:gradle = gradle{
ishead:true,
head:"123"
list:32
}
println!("{:?}",a);
输出: gradle{ishead:true,head:"123",list:32}
占位符{name}
这个看代码应该很好理解;
printlin!("{value},{a}",value="123",a="4");
占位符{:p}
输出当前变量的地址 注意参数前面需要带&号
let a = 5;
println!{"{:p}",&a}
println!("Hello {:0}!", "x");
println!("Hello {:1$}!", "x", 5);
println!("Hello {1:0$}!", 5, "x");
println!("Hello {:width$}!", "x", width = 5);
内容暂时记录到这其他的再更新。