vec动态数组
let vec1 = vec![1, 2, 3]; //类似let mut vec = Vec::new(); i32
for x in &vec1 {
println!("{x}");
}
vec.push(1);插入
vec.len()
assert_eq!(vec.pop(), Some(2)); 取出
vec[0]==1; 索引
let vec = vec![0; 5]; 初始化[0,0,0,0,0]链接字符串
对任意 String 变量,加 & 取引用,就能得到 &str 类型
let s1 = concat!("Hello", " ", "Rust", " ", "2026"); 字符串拼接,不能是变量返回&'static str
let s1 = concat!("当前文件:\n", file!(), ",行号:", line!()); 只能是字符串
let s2 = format!("姓名:{},年龄:{}", "张三", 20); 链接字符串不输出,返回String类型,支持表达式
let s3 = "Hello" .to_owned()+ "Rust"; &str转换成String,+拼接字符串左边必须是String,生成的与原来无关,借用变拥有用to_owned(),单纯拷贝用clone()
let s4 = "我是你朋友";
let mut s41 = s4.to_owned();
s41.push_str("是吗");
s41.push_str("?");
println!("{:?}", s41);
"测试".to_string() 123,3.14,true,'x'支持to_string() 字符串用String::from("字符串")或to_owned();
let vars = vec!["中国", "b", "c"]; // 混合String/&str let s: String = vars.concat(); 数组转换成字符串
concat_bytes!(b"abc", b"123", [0x01, 0x02]); 字节数组拼接,返回静态字节数组 &'static [u8]
let path: &'static str = env!("PATH"); 获取环境变量宏
let content = include!("data.txt"); 支持任意文本文件(rs/txt/json 等)
let txt=include_str!("../1.txt"); 直接嵌入文本文件,返回 &str
include_bytes!("xxx.png"):直接嵌入二进制文件,返回 &[u8]
assert_eq!(10, 50*2); 断言是否相等,相等不出错,不想等出错
assert!(1 == 1); 断言表达是否true
if 1 > 2 { panic!("这是不可能的,程序崩溃!"); } 终止输出错误
if cfg!(windows) { println!("当前系统是Windows"); } 判断条件
let a = 10 + 20;dbg!(a);
println!("数字:{},字符串:{}", 100, "abc");四种调试
{}:面向用户,依赖 Display,输出简洁友好。{:?}:面向开发者,依赖 Debug,输出紧凑调试信息。{#?}:面向开发者,依赖 Debug,输出美化缩进的调试信息,适合复杂数据结构。
自定义类型快速启用调试格式化:添加 #[derive(Debug)] 即可,无需手动编码
作者:Yoby 创建时间:2025-07-12 18:04
最后编辑:Yoby 更新时间:2026-02-19 16:09
最后编辑:Yoby 更新时间:2026-02-19 16:09