mirror of
https://github.com/RustyCab/LearnRustEasy.git
synced 2026-02-03 10:13:23 +08:00
Update chapter_3_2.md
This commit is contained in:
@@ -24,7 +24,7 @@ Rust中的整型和浮点型如下:
|
||||
上面的表格中,f32和f64为浮点型,其它为整型。浮点型和整型一起构成数值型。
|
||||
|
||||
(1)可以在数值字面量后面加上类型表示该类型的数值,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main(){
|
||||
let _a = 33u32; // 直接加类型后缀
|
||||
let _b = 33_i32; // 使用_分隔数值和类型
|
||||
@@ -33,7 +33,7 @@ fn main(){
|
||||
}
|
||||
```
|
||||
(2)可以数值的任意位置使用下划线分割来增强可读性,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main(){
|
||||
let _a = 10_000_000u32;
|
||||
let _b = 1_234_3_u32;
|
||||
@@ -41,14 +41,14 @@ fn main(){
|
||||
}
|
||||
```
|
||||
(3)当不明确指定变量的类型,也不明确指定数值字面量的类型后缀时,Rust默认将整数当做i32类型,将浮点数当做f64类型,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main(){
|
||||
let _a = 33; // 等价于 let _a: i32 = 33; 等价于 let _a = 33i32;
|
||||
let _b = 64.123; // 等价于let _b: f64 = 64.123; 等价于 let _b = 64.123f64;
|
||||
}
|
||||
```
|
||||
(4)Rust使用0b表示二进制、0o表示八进制、0x表示十六进制,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main(){
|
||||
let a: u32 = 0b101; // 二进制整数
|
||||
let b: i32 = 0o17; // 八进制整数
|
||||
@@ -58,7 +58,7 @@ fn main(){
|
||||
}
|
||||
```
|
||||
(5)Rust中所有的数值类型都支持基本数学运算:加、减、乘、除、取余,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let sum = 5 + 10;
|
||||
let difference = 95.5 - 4.3;
|
||||
@@ -72,7 +72,7 @@ fn main() {
|
||||
- 布尔型
|
||||
|
||||
Rust中的布尔型用bool表示,有两个可能的值,为true和false。布尔类型使用的场景主要是条件表达式(控制流的内容),使用如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
// 定义方式
|
||||
let a: bool = true;
|
||||
@@ -96,7 +96,7 @@ fn main() {
|
||||
- 字符类型
|
||||
|
||||
char类型用于存放单个unicode字符,占用4个字节空间。当存储char类型数据时,Rust会将其转换为utf-8编码的数据存储。char字面量是单引号包含的任意单个字符,字符类型使用示例如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let c: char = 'z';
|
||||
let x: char = 'x';
|
||||
@@ -110,13 +110,13 @@ fn main() {
|
||||
- 元组
|
||||
|
||||
圆括号以及其中逗号分割的值列表组成元组,定义一个元组方式如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let tup: (i32, f64, u8) = (500, 6.4, 1);
|
||||
}
|
||||
```
|
||||
可以将元组重新结构到变量上,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let tup = (500, 6.4, 1);
|
||||
let (x, y, z) = tup;
|
||||
@@ -124,7 +124,7 @@ fn main() {
|
||||
}
|
||||
```
|
||||
也可以直接使用元组的元素,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let x: (i32, f64, u8) = (500, 6.4, 1);
|
||||
let first = x.0;
|
||||
@@ -134,7 +134,7 @@ fn main() {
|
||||
```
|
||||
|
||||
不带任何值的元组,称为unit类型(单元元组),可以代表空值或者空的返回类型,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let x: () = (); // 将值()保存到类型为()的变量x中
|
||||
}
|
||||
@@ -143,7 +143,7 @@ fn main() {
|
||||
- 数组
|
||||
|
||||
数组中的每个元素的类型必须相同,数组的长度是固定的,数组的定义方式如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let a = [1, 2, 3, 4, 5]; //直接写数组的值
|
||||
let b: [i32; 5] = [1, 2, 3, 4, 5]; //显示指定数组的类型和长度
|
||||
@@ -151,7 +151,7 @@ fn main() {
|
||||
}
|
||||
```
|
||||
数组通过索引来访问元素,索引从0开始计数,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let a = [1, 2, 3, 4, 5];
|
||||
|
||||
@@ -160,7 +160,7 @@ fn main() {
|
||||
}
|
||||
```
|
||||
Rust中,访问无效的索引元素会报错,如下:
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
let a = [1, 2, 3, 4, 5];
|
||||
let b = a[5]; // 错误,只能放为0-4,所以这个代码将无法编译
|
||||
@@ -177,7 +177,7 @@ Rust中可以使用as进行类型转换。
|
||||
- 可以通过as将u8转换为char类型。
|
||||
- 可以使用std::char::from_u32将u32转换为char类型。
|
||||
- 可以使用std::char::from_digit将十进制整型转换为char类型。
|
||||
```
|
||||
```Rust
|
||||
fn main() {
|
||||
// 数值类型的转换
|
||||
assert_eq!(10i8 as u16, 10u16);
|
||||
|
||||
Reference in New Issue
Block a user