use std::collections::HashMap;
fn print_type_of<T>(_: &T) {
print!("Type is : {} \n", std::any::type_name::<T>());
}
enum Data {
Int(i32),
Double(f64),
Str(String),
}
fn main() {
println!("----------------Vector----------------");
let mut v1: Vec<i32> = Vec::new();
v1.push(1);
v1.push(2);
v1.push(3);
v1.push(4);
let mut v2 = vec![5, 6, 7, 8];
v2.push(9);
v2.push(10);
for v in &v1 {
print!("{} \n", v);
}
println!("");
for v in &v2 {
print!("{} \n", v);
}
println!("");
print_type_of(&v1);
print_type_of(&v2);
let third: &i32 = &v1[2];
println!("The third element is {}", third);
match v2.get(2) {
Some(third) => println!("The third element is {}", third),
None => println!("There is no third element."),
}
println!("");
let mut vec: Vec<Data> = Vec::new();
vec.push(Data::Int(99));
vec.push(Data::Double(99.99));
vec.push(Data::Str(String::from("Hello Rust")));
for index in &vec {
match index {
Data::Int(value) => println!("{}", value),
Data::Double(value) => println!("{}", value),
Data::Str(value) => println!("{}", value),
}
}
println!("");
let vv = vec![
Data::Int(99),
Data::Double(99.99),
Data::Str(String::from("Hello Rust")),
];
for index in &vv {
match index {
Data::Int(value) => println!("{}", value),
Data::Double(value) => println!("{}", value),
Data::Str(value) => println!("{}", value),
}
}
println!("----------------String----------------");
let s1: String = String::from("hello Str1");
let str1: &str = "hello str1";
let str2 = &s1;
print_type_of(&s1);
print_type_of(&str1);
print_type_of(&str2);
let i = 10;
print_type_of(&i);
let mut s = String::from("Hello ");
s.push('r');
println!("追加字符 push() -> {}", s);
s.push_str("ust!");
println!("追加字符串 push_str() -> {}", s);
let mut s = String::from("Hello rust!");
s.insert(5, ',');
println!("插入字符 insert() -> {}", s);
s.insert_str(6, " I like");
println!("插入字符串 insert_str() -> {}", s);
let string_append = String::from("hello ");
let string_rust = String::from("rust");
let result = string_append + &string_rust;
let mut result = result + "!";
result += "!!!";
println!("连接字符串 + -> {}", result);
let s1 = "hello";
let s2 = String::from("rust");
let s = format!("{} {}!", s1, s2);
println!("{}", s);
println!("----------------HashMap----------------");
let mut map = HashMap::new();
map.insert(String::from("Blue"), 10);
map.insert(String::from("Yellow"), 50);
for iter in &map {
println!("{}:{}", iter.0, iter.1);
}
println!("");
for (k, v) in &map {
println!("{}:{}", k, v);
}
println!("");
match map.get("Blue") {
Some(val) => println!("Blue:{}\n", val),
None => println!("No this value"),
};
println!("{:?} \n", map);
map.insert(String::from("Blue"), 25);
map.entry("Blue".to_string()).or_insert(3);
map.entry("Red".to_string()).or_insert(4);
println!("{:#?} \n", map);
let vaule = map.entry(String::from("Red")).or_insert(55);
*vaule = 66;
for (key, value) in map.iter_mut() {
println!("=>key:{:?} value :{:?}", key, value);
*value += 1;
}
println!("{:#?} \n", map);
let mut map = HashMap::new();
map.insert("color", "red");
map.insert("size", "10 m^2");
map.insert("a", "aba");
if let Some(x) = map.get_mut("a") {
*x = "b";
}
map.entry("color").or_insert("red1");
println!("映射");
for p in map.iter() {
println!("{:?}", p);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通