美文网首页Rust 学习笔记
Rust基础学习-03-变量常量和基本数据类型

Rust基础学习-03-变量常量和基本数据类型

作者: 一个游戏开发者 | 来源:发表于2019-10-10 13:03 被阅读0次

这里来聊一下Rust的变量声明,以及基本的数据类型。

可变性

与其他编程语言很不同的一点是,Rust 的变量默认是不可变的。

let x = 5;
x = 6;

这一步编译会报错,因为rust的变量默认是不可变的。

let mut x = 5;
x = 6;

在变量前加上 mut 则表示正在定义一个可变变量,再改其值,就不会报错。

let x = 5;
let x = 6; 
let x = "name";

1.定义一个变量,并将5这个值绑定给这个变量
2.重新使用 let x 定义一个变量,相当于定义了一个新的变量,并且将6绑定给这个变量
3.再次使用 let x 定义一个变量,并且绑定一个不同类型的值
上面的三行代码不会报错,在Rust中,这个操作叫做 Shadowing,中文翻译是,旧的变量被新的变量隐藏了。

mutShadowing 的一个区别就是,Shadowing 相当于创建了一个新的变量,所以可以使用完全不同类型的值

常量

  1. 声明常量使用 const,不使用 let,例如 const MAX_NUM:u32 = 10000;
  2. 常量也不能使用 mut
  3. 常量必须明确数据类型 const MAX_NUM:u32 = 10000;
  4. 常量默认不可变,总是不可变
  5. 常量命名规范是大写字母加下划线

基本数据类型

1. 整型

长度 有符号 无符号
8-bit i8 u8
16-bit i16 u16
32-bit i32 u32
64-bit i64 u64
arch isize usize
  1. 有符号可存储正值和负值,无符号只能存储正值
  2. 有符号的存储范围是 -(2n-1) ~ (2n-1 - 1),n是位数。例如i8可以存储的范围是 -128 ~ 127
  3. 无符号的存储范围是 0 ~ (2n - 1),例如 u8 可以存储的范围是 0 ~ 255
  4. isizeusize依赖于运行程序的计算机架构,64位架构上,它们就是64位,32位架构上,它们就是32位
  5. 默认类型是 i32

2. 浮点型

浮点型分为 f32f64,默认类型是 f64

3. 布尔型

布尔型只有两个值 truefalselet is_student: bool = false;

4. 字符型

字符型使用单引号,例如 let c1: char = 'A';let c1: char = 'ℤ';。有一点要注意的是,Rust 的 char 类型代表了一个 Unicode 标量值(Unicode Scalar Value),这意味着它可以比 ASCII 表示更多内容。在 Rust 中,拼音字母(Accented letters),中文、日文、韩文等字符,emoji(绘文字)以及零长度的空白字符都是有效的 char 值。

5. 数组类型

每个元素的类型必须相同,数组的长度不能动态增长或缩小。如果要修改数组中的某个值,则数组定义时要加 mut 才行

let a = [1, 2, 3 ,4 ,5];
let b: [i32: 10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let num1 = a[0];
let num2 = a[1];

6. 元祖类型

元祖类型是将多个相同或不同类型的值,组合起来。如果要修改元祖中的某个值,则元祖定义时要加mut才行。

let tup = (1, 2, 3, "haha", 'c', 'B');
let tup2: (i32, char, char) = (15, 'C', 'D');

// 这一句称作解构元祖(destructuring), 将tup2中的值分给赋值给x,y,z
let (x, y z) = tup2;

// 访问元祖中的某个值
let x = tup2.0; // 访问第0个值
let y = tup2.1; // 访问第1个值

相关文章

  • Rust基础学习-03-变量常量和基本数据类型

    这里来聊一下Rust的变量声明,以及基本的数据类型。 可变性 与其他编程语言很不同的一点是,Rust 的变量默认是...

  • RUST 学习日记 第6课 ——基本数据类型

    RUST 学习日记 第6课 ——基本数据类型 0x00 回顾 上一节讲解了变量和常量,主要了解了他们的区别。也初...

  • 零基础学C语言(6):变量与常量

    前面我们初步认识了数据类型、常量和变量,并讲完了基本数据类型,那接下来咱们详细介绍下变量和常量。 常量 之前我们介...

  • JS基础

    JavaScript概述 、 JavaScript基础语法 、 变量和常量 、 数据类型 数据类型转换 、 运算符...

  • 安卓堆、栈、常量池区别

    栈:存放基础数据类型跟局部变量会自动回收堆:存放new 对象,GC会回收这里面的对象常量池:存放字符串常量和基本类...

  • JS基础:基本语法

    目录一. 常量与变量 1. 常量 2. 变量二. 数据类型 1. 概述 2. 基本数据类型 3. 对象数据类型 4...

  • Kotlin 数据之本变量

    变量和常量用来存储数据和传递数据,类型则用来描述变量和常量保存的是什么样的数据类型。 数据类型 变量和常量都有数据...

  • php基础语法1

    判断变量是否定义 && 判断变量是否为空 九大超全局预定义变量 常量 系统常量和魔术常量 数据类型 数据类型分类 ...

  • 01-Swift基本语法

    一、基本数据类型 整形 浮点型 字符串类型 布尔类型 二、常量和变量 在swift中只有常量和变量两种。let表示...

  • Swift 2.0 学习笔记 1_基础部分

    //: 基础部分 //: 常量和变量 //: 声明常量和变量 // let: 常量 var: 变量 let max...

网友评论

    本文标题:Rust基础学习-03-变量常量和基本数据类型

    本文链接:https://www.haomeiwen.com/subject/mrwopctx.html