Rust
大约 2 分钟
Rust
镜像源🍊
描述🍑
- 无聊又去学一门新语言怎么样。
- 与其他语言不同的是,rust的语法相当的陌生。
介绍🐯
- 官网 https://www.rust-lang.org/zh-CN/learn
- 文档 中文文档
- 教程 https://rustwiki.org/zh-CN/rust-by-example/index.html
- 学习 https://github.com/licheng1013/rust-study
基本语法👏
变量👻
fn main() {
let x = 5; // 普通变量,不可变的,加上 mut 为可变 let mut x = 5;
const NUMBER: i16 = 5; // 常量
let y: f32 = 3.0; // f32
println!("{x}");
println!("{NUMBER}");
println!("{y}")
}
流程控制💔
fn main() {
let number = 3;
if number < 5 {
println!("true");
} else if number < 10 {
println!("10");
}else {
println!("false");
}
}
三元表达式💔
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("The value of number is: {number}");
}
列表🍅
/// 列表
fn list(){
println!("list-----------------------------------------------");
// 列表
let mut v: Vec<i32> = Vec::new();
v.push(1);
v.push(2); //增加
v.remove(1);//删除
v.insert(v.len(),3);
println!("获取: {:?},长度: {:?},列表: {:?}", v.get(0),v.len(),v);
}
Map🐷
fn map() {
// map
println!("\nmap-----------------------------------------------");
let mut map = HashMap::new();
map.insert("Blue".to_string(), 10);//插入
map.insert("Yellow".to_string(), 50);//插入
map.insert("Blue".to_string(), 30);//替换
map.remove("Yellow");
println!("获取: {:?},map: {:?}", map.get(&String::from("Blue")), map);
}
开源库🍇
跨平台桌面框架🐔
前端框架💢
- 前端web应用: https://github.com/yewstack/yew
后端框架✋
- 后端应用: https://github.com/actix/actix-web
- 中文: https://www.rectcircle.cn/posts/rust-actix/
- https://axum.rs/
WebSocket💞
关键字👻
unwrap😎
- 官方描述
match 能够胜任它的工作,不过它可能有点冗长并且不总是能很好的表明其意图。Result<T, E> 类型定义了很多辅助方法来处理各种情况。其中之一叫做 unwrap,
它的实现就类似于示例 9-4 中的 match 语句。如果 Result 值是成员 Ok,unwrap 会返回 Ok 中的值。如果 Result 是成员 Err,unwrap 会为我们调用 panic!。
这里是一个实践 unwrap 的例子:
use std::fs::File;
fn main() {
let f = File::open("hello.txt").unwrap();
}
结尾👏
- https://licheng1013.github.io/
- 文档会持续更新
- 请留下你的观点!