返回

文章详情

学习 - Rust.Github.io:适合所有人的 Rust 编程语言教程

Hacker News2026年8月4日 10:03

适合所有人的 Rust 编程语言教程!数据和行为结构: 结构体 Person { name: String, company_name: String, } 实现 Person: impl Person { fn new(name: String, company_name: String) -> Self { Self { name, company_name } } fn intro(&self) -> String { format!("我叫 {},来自 {} ", self.name, self.company_name) } } 特征 Greet: trait Greet { const PREFIX: &'static str = "你好"; fn greet(&self) -> String { format!(" {} !", String::from(Self::PREFIX)) } } 实现 Greet 为 Person: impl Greet for Person {} 主函数: fn main() { let steve = Person::new("Steve".to_string(), "Apple".to_string()); println!(" {} ", steve.greet()); // 你好! println!(" {} ", steve.intro()); // 我叫 Steve,来自 Apple } 功能函数: fn main() { let marks = ["10", "20", "30", "0.4", "0.5", "invalid"]; let sum: i32 = marks .iter() // 遍历 marks .filter_map(|&s| s.parse::<f64>().ok()) // 解析字符串为浮点数,忽略无效值 .map(|num| if num < 1.0 { num * 100.0 } else { num }) // 将小于 1.0 的小数乘以 100 .inspect(|&val| println!("解析: {val} ")) // 跟踪值 .map(|num| num as i32) // 将浮点数转换为整数 .sum(); // 聚合 println!("最终: {sum} " ); // 150 } 高级蓝图: 使用 std::collections::HashMap; 枚举数据 < K , V > { Value ( V ), KeyValue ( K , V ), } 主函数: fn main() { let data = vec![ Data::KeyValue("Steve", 10), Data::Value(20), Data::KeyValue("Bill", 30), Data::Value(40), ]; let map = data.into_iter() // 模式匹配和解构 .map(|item| match item { Data::KeyValue(k, v) => { println!(" {k} : {v} "); (k.to_string(), v) } Data::Value(v) => { println!("未知: {v} "); ("未知".to_string(), v) } }) // 将条目累积到映射中 .fold(HashMap::new(), |mut map, (key, value)| { map.entry(key) .and_modify(|existing| *existing += value) .or_insert(value); map }); println!("映射: {:?} ", map); // 映射: {"未知": 60, "Bill": 30, "Steve": 10} } GoHugo: 世界上构建网站的最快框架。 Pagefind: 完全静态的搜索库,旨在在大型网站上表现出色。 e25DX: 现代和模块化的技术文档和博客设置。 文档: 帮助我们改善文档。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡