doc: about rust content (#70)

This commit is contained in:
fw_qaq 2022-11-15 08:52:37 +08:00 committed by GitHub
parent 84876edb2e
commit ada64ac643
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,6 +6,35 @@ Rust 快速参考备忘单,旨在为编写基本语法和方法提供帮助。
入门
---
### 配置 vscode 调试
<!--rehype:wrap-class=row-span-2-->
参考:<https://github.com/vadimcn/vscode-lldb/blob/master/MANUAL.md#source-path-remapping>
下载 CodeLLDB选择 rust 自动生成 launch.json 文件
```json
{
"configurations": [
// 添加一下行,使 vec、hashmap 等类型显示正常
"sourceLanguages": ["rust"]
]
}
```
----
将编译文件与标准库的位置进行映射
```json
{
"lldb.launch.sourceMap": {
// 你自己的映射 hash 和映射路径
"/rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f": "/Users/feiwu/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust"
}
}
```
### Hello_World.rs
```rust
@ -981,9 +1010,108 @@ fn dead_end() -> ! {
panic!("panic!!!!!");
}
```
<!--rehype:className=wrap-text -->
惯用转换
-----
### &str -> String
```rust
String::from("str");
"str".to_string();
"str".to_owned();
```
### &str -> &[u8]
```rust
"str".as_bytes();
```
或者你也可以使用 `b""`
```rust
println!("{:?}", b"str");
```
### &str -> Vec<u8>
```rust
"str".as_bytes().to_vec();
"str".as_bytes().to_owned();
```
### String -> &str
```rust
let s = String::from("str");
let r = s.as_str();
```
### String -> &[u8]
```rust
let s = String::from("str");
let v = s.as_bytes();
```
### String -> Vec<u8>
```rust
let s = String::from("str");
let v = s.into_bytes();
```
### &[u8] -> &str
```rust
let b = "str".as_bytes();
let str = std::str::from_utf8(b).unwrap();
```
### &[u8] -> String
```rust
let b = "str".as_bytes();
let str = String::from_utf8(b.to_vec()).unwrap();
```
### &[u8] -> Vec<u8>
```rust
let b = "str".as_bytes();
let str = b.to_vec();
```
----
```rust
let b = "str".as_bytes();
let str = b.to_owned();
```
### Vec<u8> -> &str
```rust
let b = "str".as_bytes().to_vec();
let s = std::str::from_utf8(&b).unwrap();
```
### Vec<u8> -> &[u8]
```rust
let b = "str".as_bytes().to_vec();
let s = b.as_slice();
```
### Vec<u8> -> String
```rust
let b = "str".as_bytes().to_vec();
let s = String::from_utf8(b).unwrap();
```
杂项
-----