parent
5677612d9d
commit
4ce6660ca8
93
docs/rust.md
93
docs/rust.md
@ -19,6 +19,7 @@ fn main() {
|
||||
```shell
|
||||
$ rustc Hello_World.rs
|
||||
$ ./Hello_World
|
||||
|
||||
Hello, World!
|
||||
```
|
||||
|
||||
@ -396,48 +397,8 @@ println!("{:?}", str4);
|
||||
Rust 动态数组
|
||||
-----------
|
||||
|
||||
### 创建动态数组
|
||||
|
||||
```rust
|
||||
let v: Vec<i32> = Vec::new();
|
||||
// 使用宏
|
||||
let v1 = vec![1, 2, 3];
|
||||
```
|
||||
|
||||
### 读取元素
|
||||
|
||||
```rust
|
||||
let v = vec![1, 2, 3, 4, 5];
|
||||
|
||||
let element = &v[100];
|
||||
// panic,越界
|
||||
let element2 = v.get(100);
|
||||
println!("{:?}", element2);
|
||||
//None
|
||||
```
|
||||
|
||||
### 遍历数组
|
||||
|
||||
1. 只读取数组中的元素
|
||||
|
||||
```rust
|
||||
let v = vec![1, 2, 3];
|
||||
for i in &v {
|
||||
println!("{}", i);
|
||||
}
|
||||
```
|
||||
|
||||
2. 遍历的同时修改数组中的元素
|
||||
|
||||
```rust
|
||||
let mut v = vec![1, 2, 3];
|
||||
for i in &mut v {
|
||||
*i += 10
|
||||
}
|
||||
```
|
||||
|
||||
### 常用方法
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
|
||||
-|:-
|
||||
-|:-
|
||||
@ -454,6 +415,45 @@ println!("{:?}", element2);
|
||||
`drain(range)` | 删除 `vec` 中指定范围的元素,同时返回一个迭代该范围所有元素的迭代器
|
||||
`split_off(index)` | 切分 `vec`,索引左边的元素保留在原 `vec` 中(含索引),索引右边的元素(不含索引)在返回的 `vec` 中
|
||||
|
||||
### 创建动态数组
|
||||
|
||||
```rust
|
||||
let v: Vec<i32> = Vec::new();
|
||||
// 使用宏
|
||||
let v1 = vec![1, 2, 3];
|
||||
```
|
||||
|
||||
### 遍历数组
|
||||
|
||||
只读取数组中的元素
|
||||
|
||||
```rust
|
||||
let v = vec![1, 2, 3];
|
||||
for i in &v {
|
||||
println!("{}", i);
|
||||
}
|
||||
```
|
||||
|
||||
遍历的同时修改数组中的元素
|
||||
|
||||
```rust
|
||||
let mut v = vec![1, 2, 3];
|
||||
for i in &mut v {
|
||||
*i += 10
|
||||
}
|
||||
```
|
||||
|
||||
### 读取元素
|
||||
|
||||
```rust
|
||||
let v = vec![1, 2, 3, 4, 5];
|
||||
let element = &v[100];
|
||||
// panic,越界
|
||||
let element2 = v.get(100);
|
||||
println!("{:?}", element2);
|
||||
//None
|
||||
```
|
||||
|
||||
Rust 运算符
|
||||
-----------
|
||||
|
||||
@ -528,7 +528,7 @@ let left_shift = h << 4; // => 32
|
||||
示例 | 意义
|
||||
:- | :-
|
||||
`c && d` | 两者都是真的 _(AND)_
|
||||
`c || d` | 要么是真的_(OR)_
|
||||
`c \|\| d` | 要么是真的 _(OR)_
|
||||
`!c` | `c` 为假 _(NOT)_
|
||||
|
||||
----
|
||||
@ -803,6 +803,7 @@ match grade {
|
||||
_ => println!("Come on"),
|
||||
}
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
----
|
||||
|
||||
@ -818,6 +819,7 @@ fn main(){
|
||||
println!("{:?}", p);
|
||||
}
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
----
|
||||
|
||||
@ -842,6 +844,7 @@ match x {
|
||||
_ => println!("No match"),
|
||||
}// y = 2
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
Rust 函数
|
||||
--------
|
||||
@ -857,6 +860,7 @@ fn print_message(){
|
||||
```
|
||||
|
||||
### 参数值
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
rust 需要为函数的参数标明确定的类型
|
||||
|
||||
@ -872,6 +876,7 @@ fn main(){
|
||||
```
|
||||
|
||||
### 返回值
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
如果不指定返回值,rust 默认返回 `()` 类型
|
||||
|
||||
@ -880,9 +885,7 @@ fn main(){
|
||||
fn main(){}
|
||||
```
|
||||
|
||||
----
|
||||
|
||||
使用 `->` 指定返回值,如果**表达式**在最后一行,无需使用 return
|
||||
使用 `->` 指定返回值,如果**表达式**在最后一行,无需使用 `return`
|
||||
|
||||
```rust
|
||||
fn add(a:i32, b:i32) -> i32 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user