|
|
|
@ -5,7 +5,7 @@
|
|
|
|
|
结构体跟之前讲过的[元组](./tuple.md)有些相像:都是由多种类型组合而成。但是与元组不同的是,结构体可以为内部的每个字段起一个富有含义的名称。因此结构体更加灵活更加强大,你无需依赖这些字段的顺序来访问和解析它们。
|
|
|
|
|
|
|
|
|
|
## 结构体语法
|
|
|
|
|
天下无敌的剑士往往也因为他有一炳无双之剑,既然结构体这么强大,那么我们就需要给它配套一套强大的语法,让用户能更好的驾驭。
|
|
|
|
|
天下无敌的剑士往往也因为他有一柄无双之剑,既然结构体这么强大,那么我们就需要给它配套一套强大的语法,让用户能更好的驾驭。
|
|
|
|
|
|
|
|
|
|
#### 定义结构体
|
|
|
|
|
一个结构体有几部分组成:
|
|
|
|
@ -64,7 +64,7 @@ fn build_user(email: String, username: String) -> User {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
它接收两个字符串参数:`email`和`username`,然后使用它们来创建一个`User`结构体,并且返回。可以注意到这两行:`email: email`和`username: username`,非常的扎眼,因为实在有些啰嗦,如果你从typscript过来,肯定会鄙视Rust一番,不过好在,它也不是无可救药:
|
|
|
|
|
它接收两个字符串参数:`email`和`username`,然后使用它们来创建一个`User`结构体,并且返回。可以注意到这两行:`email: email`和`username: username`,非常的扎眼,因为实在有些啰嗦,如果你从typescript过来,肯定会鄙视Rust一番,不过好在,它也不是无可救药:
|
|
|
|
|
```rust
|
|
|
|
|
fn build_user(email: String, username: String) -> User {
|
|
|
|
|
User {
|
|
|
|
|