mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-13 22:30:37 +08:00
Merge pull request #29374 from wxy/20230410.0-⭐️⭐️-Rust-Basics-Series-3-Data-Types-in-Rust
RP:published/20230410.0 ⭐️⭐️ Rust Basics Series 3 Data Types in Rust.md
This commit is contained in:
commit
bb59e1964d
@ -3,14 +3,14 @@
|
||||
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Cubik65536"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15811-1.html"
|
||||
|
||||
Rust 基础系列 #3: Rust 中的数据类型
|
||||
======
|
||||
|
||||
![][1]
|
||||
![][0]
|
||||
|
||||
在 [上一篇](https://linux.cn/article-15771-1.html) 关于 Rust 编程语言的文章中,我们提到了变量、常量和 <ruby>遮蔽<rt>shadowing</rt></ruby> 。
|
||||
|
||||
@ -18,7 +18,7 @@ Rust 基础系列 #3: Rust 中的数据类型
|
||||
|
||||
### 数据类型是什么?
|
||||
|
||||
将这些单词的顺序改变一下你就会得到答案了;“数据类型” -> “数据的类型”。
|
||||
将这个词汇展开些单词的顺序改变一下你就会得到答案了;“数据类型” -> “数据的类型”。
|
||||
|
||||
计算机使用 `0` 和 `1` 来存储数据,但是为了让数据在读取时有意义,我们使用数据类型来表示这些 `0` 和 `1` 的含义。
|
||||
|
||||
@ -31,7 +31,7 @@ Rust 有两种数据类型:
|
||||
|
||||
接下来是 Rust 中四种主要标量数据类型的简要概述:
|
||||
|
||||
- **整数**:存储整数。有每种特定情况下使用的子类型。
|
||||
- **整型**:存储整数。有每种特定情况下使用的子类型。
|
||||
- **浮点数**:存储带有小数部分的数字。有两种基于大小的子类型。
|
||||
- **字符**:使用 UTF-8 编码存储单个字符。(是的,你可以在字符中存储表情符号*。)
|
||||
- **布尔值**: 存储 `true` 或 `false`。(给那些无法就 `0` 是 `true` 还是 `0` 是 `false` 达成一致的开发者。)
|
||||
@ -63,7 +63,7 @@ fn main() {
|
||||
let bin_value = 0b100_0101; // 使用前缀“0b”表示二进制
|
||||
let oct_value = 0o105; // 使用前缀“0o”表示八进制
|
||||
let hex_value = 0x45; // 使用前缀“0x”表示十六进制
|
||||
let dec_value = 1_00_00_000; // 跟写一克若 (1,00,00,000) 一样
|
||||
let dec_value = 1_00_00_000; // 和写一克若(1,00,00,000)一样
|
||||
|
||||
println!("二进制值: {bin_value}");
|
||||
println!("八进制值: {oct_value}");
|
||||
@ -72,7 +72,7 @@ fn main() {
|
||||
}
|
||||
```
|
||||
|
||||
我使用二进制、八进制和十六进制分别将十进制数 69 存储在变量 `bin_value`、`oct_value` 和 `hex_value` 中。在变量 `dec_value` 中,我存储了数字 [1 克若][4](一千万),并且使用了下划线替代逗号,这是印度的书写系统。对于那些更熟悉国际计数系统的人来说,你可以将其写成 `10_000_000`。
|
||||
我使用二进制、八进制和十六进制分别将十进制数 69 存储在变量 `bin_value`、`oct_value` 和 `hex_value` 中。在变量 `dec_value` 中,我存储了数字 <ruby>[1 克若][4]<rt>1 Crore</rt></ruby>(一千万),并且使用了下划线替代逗号,这是印度的书写系统。对于那些更熟悉国际计数系统的人来说,你可以将其写成 `10_000_000`。
|
||||
|
||||
在编译并运行这个二进制文件后,我得到了如下输出:
|
||||
|
||||
@ -174,9 +174,9 @@ val_f: false
|
||||
|
||||
### 额外内容:显性类型转换
|
||||
|
||||
在上一篇讲述 Rust 编程语言中的变量的文章中,我展示了一个非常基础的[温度转换程序][8]。在那里,我提到 Rust 不允许隐式类型转换。
|
||||
在上一篇讲述 Rust 编程语言中的变量的文章中,我展示了一个非常基础的 [温度转换程序][8]。在那里,我提到 Rust 不允许隐式类型转换。
|
||||
|
||||
但这不代表 Rust 也不允许 _显性_ 类型转换 ;)
|
||||
但这不代表 Rust 也不允许 _显性_ 类型转换 ; )
|
||||
|
||||
要进行显性类型转换,使用 `as` 关键字,后面跟着要转换的数据类型。
|
||||
|
||||
@ -192,7 +192,7 @@ fn main() {
|
||||
}
|
||||
```
|
||||
|
||||
在第二行,我没有使用 '3.0',而是在 '3' 后面写上 `as f64`,以表示我希望编译器将 '3'(一个整数)转换为 64 位浮点数的类型转换。第三行也是一样。但是这里,类型转换是**有损的**。这意味着小数部分 _完全消失_。它不是存储为 `3.14159265359`,而是存储为简单的 `3`。
|
||||
在第二行,我没有使用 `3.0`,而是在 `3` 后面写上 `as f64`,以表示我希望编译器将 `3`(一个整数)转换为 64 位浮点数的类型转换。第三行也是一样。但是这里,类型转换是**有损的**。这意味着小数部分 _完全消失_。它不是存储为 `3.14159265359`,而是存储为简单的 `3`。
|
||||
|
||||
程序的输出可以验证这一点:
|
||||
|
||||
@ -203,12 +203,14 @@ b: 3
|
||||
|
||||
### 总结
|
||||
|
||||
本文介绍了 Rust 中的原始/标量数据类型。主要有四种这样的数据类型:整数、浮点数、字符和布尔值。
|
||||
本文介绍了 Rust 中的原始/标量数据类型。主要有四种这样的数据类型:整型、浮点数、字符和布尔值。
|
||||
|
||||
整型用于存储整数,它们有几种子类型,基于它们是有符号还是无符号以及长度。浮点数用于存储带有小数的数字,根据长度有两种子类型。字符数据类型用于存储单个有效的 UTF-8 编码字符。最后,布尔值用于存储 `true` 或 `false` 值。
|
||||
|
||||
在下一章中,我将讨论数组和元组等复合数据类型。敬请关注。
|
||||
|
||||
*(题图:MJ/c0c49e15-cc9d-4eef-8e52-2f0d62294965)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/rust-data-types/
|
||||
@ -216,7 +218,7 @@ via: https://itsfoss.com/rust-data-types/
|
||||
作者:[Pratham Patel][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Cubik65536](https://github.com/Cubik65536)
|
||||
校对:[Cubik65536](https://github.com/Cubik65536)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
@ -230,3 +232,4 @@ via: https://itsfoss.com/rust-data-types/
|
||||
[6]: https://www.ascii-code.com/?ref=itsfoss.com
|
||||
[7]: https://unicode-table.com/en/200D/?ref=itsfoss.com
|
||||
[8]: https://linux.cn/article-15771-1.html
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202305/13/215245a1wjvnwtcwawasnw.jpg
|
Loading…
Reference in New Issue
Block a user