diff --git a/docs/rust.html b/docs/rust.html index 8cb050cb..181deaf0 100644 --- a/docs/rust.html +++ b/docs/rust.html @@ -42,7 +42,7 @@
Rust 快速参考备忘单,旨在为编写基本语法和方法提供帮助。
fn main() {
println!("Hello, World!");
@@ -245,8 +245,8 @@
let mut a: u32 = 8;
-let b: u64 = 877;
-let c: i64 = 8999;
+let b = 877_u64;
+let c = 8999i64;
let d = -90;
原生字符串,无需增加转义字符(\
)转义
let str1 = r#"\hello"#;
+println!("{}", str1);
+// \hello
+
+字节和字节串
+let str2 = b'a';
+println!("{}", str2);
+// 97
+let str3 = b"\\hello";
+println!("{:?}", str3);
+//[92, 104, 101, 108, 108, 111]
+let str4 = br#"\hello"#;
+println!("{:?}", str4);
+//[92, 104, 101, 108, 108, 111]
+
+let v: Vec<i32> = Vec::new();
+// 使用宏
+let v1 = vec![1, 2, 3];
+
+let v = vec![1, 2, 3, 4, 5];
+
+let element = &v[100];
+// panic,越界
+let element2 = v.get(100);
+println!("{:?}", element2);
+//None
+
+只读取数组中的元素
+let v = vec![1, 2, 3];
+for i in &v {
+ println!("{}", i);
+}
+
+遍历的同时修改数组中的元素
+let mut v = vec![1, 2, 3];
+for i in &mut v {
+ *i += 10
+}
+
+- | :- |
---|---|
len() | 返回 vec 的长度 |
is_empty() | vec 是否为空 |
push(value) | 在 vec 尾部插入元素 |
pop() | 删除并返回 vec 尾部的元素,vec 为空则返回 None |
insert(index,element) | 在指定索引处插入元素 |
remove(index) | 删除指定索引处的元素并返回被删除的元素,索引越界将 panic 报错退出 |
clear() | 清空 vec |
append(vec) | 将另一个 vec 中的所有元素追加移入 vec 中,移动的 vec 变为空 |
truncate(len) | 将 vec 截断到指定长度,多余的元素被删除 |
retain(f) | 根据给定的函数,保留满足条件的元素 |
drain(range) | 删除 vec 中指定范围的元素,同时返回一个迭代该范围所有元素的迭代器 |
split_off(index) | 切分 vec,索引左边的元素保留在原 vec 中(含索引),索引右边的元素(不含索引)在返回的 vec 中 |
运算符 | 描述 |
---|---|
g & h | 二进制与 |
`g | h` |
g ^ h | 二进制异或 |
g ~ h | 二进制补码 |
g << h | 二进制左移 |
g >> h | 二进制右移 |
运算符 | 描述 |
---|---|
g & h | 二进制与 |
g | h | 二进制或 |
g ^ h | 二进制异或 |
g ~ h | 二进制补码 |
g << h | 二进制左移 |
g >> h | 二进制右移 |
let (g, h) = (0x1, 0x2);
let bitwise_and = g & h; // => 0
@@ -602,33 +719,32 @@
let day_of_week = 2;
- match day_of_week {
- 1 => {
- println!("兄弟们今天是星期一");
- },
- 2 => {
- println!("兄弟们今天是星期二");
- },
- 3 => {
- println!("兄弟们今天是星期三");
- },
- 4 => {
- println!("兄弟们今天是星期四");
- },
- 5 => {
- println!("兄弟们今天是星期五");
- },
- 6 => {
- println!("兄弟们今天是星期六");
- },
- 7 => {
- println!("兄弟们今天是星期天");
- },
- _ => {
- println!("默认!")
- }
- };
-}
+match day_of_week {
+ 1 => {
+ println!("兄弟们今天是星期一");
+ },
+ 2 => {
+ println!("兄弟们今天是星期二");
+ },
+ 3 => {
+ println!("兄弟们今天是星期三");
+ },
+ 4 => {
+ println!("兄弟们今天是星期四");
+ },
+ 5 => {
+ println!("兄弟们今天是星期五");
+ },
+ 6 => {
+ println!("兄弟们今天是星期六");
+ },
+ 7 => {
+ println!("兄弟们今天是星期天");
+ },
+ _ => {
+ println!("默认!")
+ }
+};
let nested_conditions = 89;
@@ -794,20 +910,20 @@
println!("{mutable_borrowed_bar}");
这里借用的值使用 &
运算符从值一中借用值
let mut borrow = 10;
let deref = &mut borrow;
println!("{}", *deref);
-可以使用 *
操作符在 rust 中取消引用
*
操作符用于解引用
{
// 范围仅限于此大括号
let a_number = 1;
}
println!("{a_number}");
-这将产生错误,因为变量 a_number
的范围在大括号处结束
这将产生错误,因为变量 a_number
的生命周期在大括号处结束