Update intro.md

pull/170/head
Jesse 3 years ago committed by GitHub
parent 872b57eb53
commit 98d3f44446
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2,7 +2,7 @@
行百里者半五十,欢迎大家来到这里,虽然还不到中点,但是已经不远了。如果说之前学的基础数据类型是原子,那么本章将讲的数据类型可以认为是分子。
本章的重点在复合类型上,顾名思义,复合类型是由其它类型组合而成的,最典型的就是结构体`struct`和枚举`enum`。例如平面上的一个点`point(x,y)`它由两个数值类型的值x和y组合而来。我们不想单独去维护这两个数值因为单独一个x或者y是含义不完整的不足以标识平面上的一个点,应该把它们看作一个整体去理解和处理。
本章的重点在复合类型上,顾名思义,复合类型是由其它类型组合而成的,最典型的就是结构体`struct`和枚举`enum`。例如平面上的一个点`point(x,y)`,它由两个数值类型的值`x``y`组合而来。我们不想单独去维护这两个数值,因为单独一个`x`或者`y`是含义不完整的,无法标识平面上的一个点,应该把它们看作一个整体去理解和处理。
来看一段代码,它使用我们之前学过的内容来构建文件操作:
```rust
@ -29,7 +29,7 @@ fn main() {
}
```
接下来我们的学习非常类似原型设计有的方法只提供API接口但是不提供具体实现。此外有的变量在声明之后并未使用因此在这个阶段我们需要排除一些编译器噪音Rust在编译的时候会扫代码,变量声明后未使用会以`warning`警告的形式进行提示),引入`#![allow(unused_variables)]`属性标记,该标记会告诉编译器忽略未使用的变量,不要抛出`warning`警告,具体的常见编译器属性你可以在这里查阅:[编译器属性标记](../../compiler/attributes.md).
接下来我们的学习非常类似原型设计有的方法只提供API接口但是不提供具体实现。此外有的变量在声明之后并未使用因此在这个阶段我们需要排除一些编译器噪音Rust在编译的时候会扫代码,变量声明后未使用会以`warning`警告的形式进行提示),引入`#![allow(unused_variables)]`属性标记,该标记会告诉编译器忽略未使用的变量,不要抛出`warning`警告,具体的常见编译器属性你可以在这里查阅:[编译器属性标记](../../compiler/attributes.md).
`read`函数也非常有趣,它返回一个`!`,这个表明该函数是一个发散函数,不会返回任何值,包括`()`。`unimplemented!()`告诉编译器该函数尚未实现,`unimplemented!()`标记通常意味着我们期望快速完成主要代码,回头再通过搜索这些标记来完成次要代码,类似的标记还有`todo!()`,当代码执行到这种未实现的地方时,程序会直接报错: 你可以反注释`read(&mut f1, &mut vec![]);`这行,然后再观察下结果。

Loading…
Cancel
Save