Update ch03-02-data-types.md

Signed-off-by: Sefank <12670778+Sefank@users.noreply.github.com>
pull/624/head
Sefank 2 years ago
parent 64561d29e1
commit 3b2bea23a9
No known key found for this signature in database
GPG Key ID: 8257999DC508E901

@ -2,7 +2,7 @@
> [ch03-02-data-types.md](https://github.com/rust-lang/book/blob/main/src/ch03-02-data-types.md) > [ch03-02-data-types.md](https://github.com/rust-lang/book/blob/main/src/ch03-02-data-types.md)
> <br> > <br>
> commit 1b8746013079f2e2ce1c8e85f633d9769778ea7f > commit 4284e160715917a768d25265daf2db897c683065
在 Rust 中,每一个值都属于某一个 **数据类型***data type*),这告诉 Rust 它被指定为何种数据以便明确数据处理方式。我们将看到两类数据类型子集标量scalar和复合compound 在 Rust 中,每一个值都属于某一个 **数据类型***data type*),这告诉 Rust 它被指定为何种数据以便明确数据处理方式。我们将看到两类数据类型子集标量scalar和复合compound
@ -12,7 +12,7 @@
let guess: u32 = "42".parse().expect("Not a number!"); let guess: u32 = "42".parse().expect("Not a number!");
``` ```
这里如果不添加类型注解Rust 会显示如下错误,这说明编译器需要我们提供更多信息,来了解我们想要的类型: 如果不像上面这样添加类型注解 `: u32`Rust 会显示如下错误,这说明编译器需要我们提供更多信息,来了解我们想要的类型:
```console ```console
{{#include ../listings/ch03-common-programming-concepts/output-only-01-no-type-annotations/output.txt}} {{#include ../listings/ch03-common-programming-concepts/output-only-01-no-type-annotations/output.txt}}
@ -154,9 +154,9 @@ Rust的 `char` 类型是语言中最原生的字母类型。下面是一些声
{{#rustdoc_include ../listings/ch03-common-programming-concepts/no-listing-12-tuple-indexing/src/main.rs}} {{#rustdoc_include ../listings/ch03-common-programming-concepts/no-listing-12-tuple-indexing/src/main.rs}}
``` ```
这个程序创建了一个元组,`x`并接着使用索引为每个元素创建新变量。跟大多数编程语言一样,元组的第一个索引值是 0。 这个程序创建了一个元组,`x`然后使用其各自的索引访问元组中的每个元素。跟大多数编程语言一样,元组的第一个索引值是 0。
没有任何值的元组 `()` 是一种特殊的类型,只有一个值,也写成 `()` 。该类型被称为 **单元类型***unit type*),而该值被称为 **单元值***unit value*。如果表达式不返回任何其他值,则会隐式返回单元值。 不带任何值的元组有个特殊的名称,叫做 **单元unit** 元组。这种值以及对应的类型都写作 `()`,表示空值或空的返回类型。如果表达式不返回任何其他值,则会隐式返回单元值。
#### 数组类型 #### 数组类型
@ -226,7 +226,7 @@ note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
程序在索引操作中使用一个无效的值时导致 **运行时** 错误。程序带着错误信息退出,并且没有执行最后的 `println!` 语句。当尝试用索引访问一个元素时Rust 会检查指定的索引是否小于数组的长度。如果索引超出了数组长度Rust 会 *panic*,这是 Rust 术语,它用于程序因为错误而退出的情况。这种检查必须在运行时进行,特别是在这种情况下,因为编译器不可能知道用户在以后运行代码时将输入什么值。 程序在索引操作中使用一个无效的值时导致 **运行时** 错误。程序带着错误信息退出,并且没有执行最后的 `println!` 语句。当尝试用索引访问一个元素时Rust 会检查指定的索引是否小于数组的长度。如果索引超出了数组长度Rust 会 *panic*,这是 Rust 术语,它用于程序因为错误而退出的情况。这种检查必须在运行时进行,特别是在这种情况下,因为编译器不可能知道用户在以后运行代码时将输入什么值。
这是第一个在实战中遇到的 Rust 安全原则的例子。在很多底层语言中并没有进行这类检查这样当提供了一个不正确的索引时就会访问无效的内存。通过立即退出而不是允许内存访问并继续执行Rust 让你避开此类错误。第九章会讨论更多 Rust 的错误处理。 这是第一个在实战中遇到的 Rust 安全原则的例子。在很多底层语言中并没有进行这类检查这样当提供了一个不正确的索引时就会访问无效的内存。通过立即退出而不是允许内存访问并继续执行Rust 让你避开此类错误。第九章会更详细地讨论 Rust 的错误处理机制,以及如何编写可读性强而又安全的代码,使程序既不会 panic 也不会导致非法内存访问
[comparing-the-guess-to-the-secret-number]: [comparing-the-guess-to-the-secret-number]:
ch02-00-guessing-game-tutorial.html#comparing-the-guess-to-the-secret-number ch02-00-guessing-game-tutorial.html#comparing-the-guess-to-the-secret-number

Loading…
Cancel
Save