Rust 变量和基本数据类型

简介: 本文简单介绍了 Rust 中声明变量的方式,主要是使用 let 和 const 关键字。然后介绍了四种基本数据类型,包括整数类型,浮点类型,字符类型和布尔类型。

声明变量

Rust 是强类型语言,同时具有自动判断变量类型的能力。这一点和 Typescript 有点相似。

Rust 语言中有变量和常量之分,分别通过 letconst 关键字进行声明。

let 变量

Rust 中的变量分为可变变量和不可变变量。

使用 let 关键字声明的变量默认是不可变变量,即赋值后不能再修改:

// 先声明,会赋值
let num;
num = 10;

// 声明时赋值
let name = "kw";

println!(name);
let num = 10;

num = 20; 
// error[E0384]: cannot assign twice to immutable variable `num`
// 无法对不可变的变量进行重复赋值

要声明一个可变变量,需要再加上另一个关键字 mutmutable 可变的缩写:

let mut num = 10;

num = 20; 

可变和不可变的机制,其实是提供了一种更安全的选择。毕竟 Rust 是一门号称更安全的语言,会尽可能在各个方面来保证代码的安全性。

const 常量

上面不可变变量的用法很像常量,但是常量和不可变变量还是有点不一样的。

常量使用 const 关键字声明,且需要指定类型,常量名要求是大写

// `i32` 表示 32位整数类型。
const NUM: i32 = 100

// 一旦赋值则不能被更改
NUM = 200 // ×

基本数据类型

Rust 的数据类型有很多,包含了整数类型,浮点数类型,字符类型,布尔类型,元祖类型,数组类型,字符串类型等等。

本文要介绍的基本数据类型有:

  • 整数类型
  • 浮点类型
  • 字符类型
  • 布尔类型

整数类型

JS 中只有 number 类型,包含了整数和浮点数。

Rust 中的数字分为整数类型和浮点数类型。

整数类型数字是不带有小数点的数字。表格中显示了 Rust 中的整数类型:

image-20220811005155168

其中, iinteger 的首字母,表示有符号的整数, uunsigned 的首字母,表示无符号类型。

默认的整数类型是 i32

// num_1 默认是 i32 类型
let num_1 = 10;

// 有符号的整数类型
let num_2: i32 = -10;

// 无符号的整数类型
let num_3: u32 = 10

一般不推荐使用 usizeisizeisizeusize 两种整数类型的位长度取决于所运行的目标平台,如果是 32 位架构的处理器则使用 32 位位长度整型,以此类推。

浮点类型

浮点类型数字是带有小数点的数字

在 Rust 中浮点类型数字也有两种基本类型: f32f64,分别表示 32 位和 64 位大小。

默认浮点类型是 f64,在现代的 CPU 中它的速度与 f32 几乎相同,但精度更高。

浮点数字面量表示方式有如下几种:

// 默认是 f64 类型
let number_1 = 5.0

// f32 类型的浮点数
let number_2: f32 = 5.0

数学运算

Rust 中的所有基元数字类型都支持数学运算,如加法、减法、乘法和除法。

let num_1 = 1 + 2; // 3

let num_2 = 9.99 - 0.99; // 9

let num_3 = 10 * 20; // 200

let num_4 = 81 / 9; //9

let num_5 = 17 % 5; //  2

字符类型

注意这里是字符类型而不是字符串类型。

在 Rust 中字符类型属于基本数据类型,字符串属于复合数据类型。不像 JS 中,都叫做字符串类型。

字符类型用 char 表示,任何一个 unicode 编码的字符都是合法的字符值,比如单个的中文、英文、日文、emoji 表情符号等等。

字符类型字面量用单引号表示,双引号是用来表示字符串的。

let z: char = '中';
let e: char = 'E';
let emoji: char = '😛';

println!("{}", z);
println!("{}", e);
println!("{}", emoji);

打印结果:

image-20220811110039461

布尔类型

布尔类型使用 bool 表示,只有两个值,truefalse。布尔值占用内存的大小为 1 个字节。

let t: bool = true;
let f: bool = false;

这应该是最简单的数据类型了吧?

小结

本文简单介绍了 Rust 中声明变量的方式,主要是使用 let 和 const 关键字。然后介绍了四种基本数据类型,包括整数类型,浮点类型,字符类型和布尔类型。

目录
相关文章
|
6月前
|
存储 Rust 程序员
Rust中数据类型详解:从整数到字符串
本文将详细解析Rust编程语言中的基本数据类型,包括整数、浮点数、布尔值、字符与字符串。我们将深入探讨每种数据类型的特性、使用场景以及它们在Rust中的实现方式,帮助读者更好地理解和应用这些基础元素。
|
6月前
|
Rust JavaScript 前端开发
【一起学Rust | 基础篇】Rust基础——变量和数据类型
【一起学Rust | 基础篇】Rust基础——变量和数据类型
93 0
|
4月前
|
存储 Rust JavaScript
Rust 问题之TypeScript 代码,变量 s 存储在栈内存中还是堆内存中如何解决
Rust 问题之TypeScript 代码,变量 s 存储在栈内存中还是堆内存中如何解决
|
5月前
|
Rust 开发者
Rust变量与常量介绍
Rust变量与常量介绍
|
5月前
|
Rust 安全
Rust变量、常量声明与基本数据类型
Rust变量、常量声明与基本数据类型
|
6月前
|
存储 Rust 编译器
Rust中不可变变量与const有何区别?
Rust作者认为变量默认应该是`immutable`,即声明后不能被改变的变量。这一点是让跨语言学习者觉得很别扭,不过这一点小的改变带来了诸多好处,本节我们来学习Rust的变量。
76 9
Rust中不可变变量与const有何区别?
|
6月前
|
存储 Rust 自然语言处理
Rust 基础语法和数据类型
Rust 基础语法和数据类型
110 0
|
6月前
|
存储 Rust 编译器
Rust变量与数据类型
Rust变量与数据类型
|
6月前
|
Rust 安全 编译器
深入Rust的所有权系统:理解变量的所有权
本文详细探讨了Rust编程语言中所有权系统的核心概念,包括变量的所有权、生命周期、借用规则和内存安全。通过理解这些概念,我们能够编写出更加高效、安全和可维护的Rust代码。
|
6月前
|
存储 Rust 安全
Rust中的变量与常量:定义与使用的深入解析
本文将详细探讨Rust编程语言中变量与常量的定义、特性及其使用场景。我们将从基本概念出发,逐步深入到Rust的内存管理、所有权系统和不变性原则,帮助读者更好地理解和应用这两种基础元素。
下一篇
无影云桌面