---
title: Rust Data Types
localeTitle: Rust数据类型
---
理解编程语言的类型系统对于开始编写程序至关重要。类型系统只是一种编程语言强制您将信息存储在数据中的系统。如果您是来自C / C ++的开发人员，那么您可能已经熟悉了其中一些数据类型。

让我们看看Rust的原始类型

* * *

当我们看Rust时，我们会看到一种更注重**类型安全的语言** 。这意味着交互和处理程序员如何存储数据，编译器更加严格和不可原谅。我们将通过**警告**介绍一个例子（我们将很快看到）。

Rust也是一种静态类型的编程语言。这意味着在编译程序时（也称为_编译时_ ），必须知道变量的类型。 Rust可以选择提供_隐式_或_显式_类型。

### 整型

让我们通过声明一个简单的整数来看看_隐式_或_显式_类型是如何工作的。
```
let number = 13; 
```

我们声明我们的变量， `number`等于13的值。当我们编译它时，Rust知道数字的类型是`i32` ，也称为32位整数。如果我们想_明确_地这样做，我们可以将变量声明为：
```
let number: i32 = 13; 
```

当然， `i32`不是我们可以指定的唯一类型。这是您可以实现的其他`integer`类型的表。请记住，这些是_固定大小的_ ，与该类型对应的位数是可以存储在该变量中的位数。

|尺寸|签名|无符号| | ----- | ---- | --- | | 8位| i8 | u8 | | 16位| i16 | u16 | | 32位| i32 | u32 | | 64位| i64 | u64 |

Signed（ `i` prepend）和unsigned（ `u` prepend）分别表示我们声明的变量是正数还是负数。

Rust还有`isize`和`usize`类型，这取决于您的计算机架构。如果您使用的是64位体系结构，则将拥有64位变量。如果您使用的是32位体系结构，则将拥有32位变量。

### 花车

Rust还支持浮点值或十进制值。
```
let floaty = 3.0; // type is f64 
```

变量`floaty`被隐式声明为`f64`类型或64位浮点数。如果你想要一个`f32` ，你可以通过显式来强制变量，或者将类型附加到变量值的结尾：
```
let float1: f32 = 4.5; // type is f32 
 let float2 = 5f32;   // type is f32 
```

你可以看到`float2`现在是`f32` ，即使它有一个非十进制值。通过附加`f32` ，我们强制`float2`表示`f32`类型。

## 布尔

在每种编程语言中，布尔值（ `true`和`false` ）总是以某种形式出现。 Rust通过`bool`类型支持这一点。
```
let t = true; 
 let f: bool = false; 
```

## 数值运算

话虽如此，我们现在可以使用Rust来执行简单的数值运算。请注意类型仅限于使用自己的类型进行计算。
```
let a = 4 + 5;        // => 9 
 let b = 5.0 - 4.0;    // => 1.0 
 let c = 3 * 4.0;      // => ERROR! 
 let d = 6.0 / 2.0;    // => 3.0 
 let e = 10 % 4;       // => 2 
```

## 警告！

让我们看一下Rust中已经存在的一些潜在问题。由于有效地利用数据并确保实际使用的是我们创建的变量，因此Rust会对未使用的变量发出警告：
```
fn main(){ 
  let a = 4; 
  // and now we close our program. 
 } 
```

现在如果我们运行这个程序：
```
warning: unused variable: `a` 
```

重要的是要记住始终使用我们的变量，如果没有，请将它们注释掉或删除它们！

## 阅读更多：

https://doc.rust-lang.org/book/second-edition/ch03-02-data-types.html