3.Rust数据类型

这篇具有很好参考价值的文章主要介绍了3.Rust数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rust数据类型

Rust 每个值都有其确切的数据类型,总的来说可以分为两类:基本类型和复合类型。

基本数据类型

Rust是一个强类型语言与js不同,我们在声明变量时就要指定该变量的类型,编译器必须在编译期知道我们所有变量的类型。当然大多时聪明的编译器可以自动推导类型,但为了保证代码质量和可读性建议还是定义好类型。
基本类型意味着它们往往是一个最小化原子类型,无法解构为其它类型(一般意义上来说),基本数据类型由以下组成:

  • 数值类型: 有符号整数 (i8, i16, i32, i64, isize)、 无符号整数 (u8, u16, u32, u64, usize) 、浮点数 (f32, f64)、以及有理数、复数
  • 字符串:字符串字面量和字符串切片 &str
  • 布尔类型: true和false
  • 字符类型: 表示单个 Unicode 字符,存储为 4 个字节
  • 单元类型: 即 () ,其唯一的值也是 ()

整数类型

整数是没有小数部分的数字。之前使用过的 i32 类型,表示有符号的 32 位整数( i 是英文单词 integer 的首字母,与之相反的是 u,代表无符号 unsigned 类型)。下表显示了 Rust 中的内置的整数类型:

长度 有符号类型 无符号类型
8位 i18 u8
16位 i16 u16
32位 i32 u32
64位 i64 u64
128位 i128 u128
视计算机CPU类型而定 isize usize

isize 和 usize 的主要应用场景是用作集合的索引。
整形字面量可以用下表的形式书写:

数字字面量 示例
十进制 98_222
十六进制 0xff
八进制 0o77
二进制 0b1111_0000
字节 (仅限于 u8) b’A’

对于整形来说,Rust默认使用i32类型,例如let num = 11num的类型为i32

浮点类型

浮点类型数字 是带有小数点的数字,在 Rust 中浮点类型数字也有两种基本类型: f32f64,分别为 32 位和 64 位大小。默认浮点类型是 f64,在现代的 CPU 中它的速度与 f32 几乎相同,但精度更高。
示例

fn main() {
    let x = 5.0; // f64

    let y: f32 = 1.0; // f32
}

序列

Rust 提供了一个非常简洁的方式,用来生成连续的数值,例如 1…6,生成从 1 到 4 的连续数字,不包含 6 ;1…=6,生成从 1 到 5 的连续数字,包含 6,它的用途很简单,常常用于循环中:

for i in 1..=6 {
    println!("{}",i);
}

序列只允许用于数字或字符类型,原因是:它们可以连续,同时编译器在编译期可以检查该序列是否为空,字符和数字值是 Rust 中仅有的可以用于判断是否为空的类型。如下是一个使用字符类型序列的例子:

字符类型

字符可以把它理解为英文中的字母,中文中的汉字。Rust 的字符不仅仅是 ASCII,所有的 Unicode 值都可以作为 Rust 字符,包括单个的中文、日文、韩文、emoji 表情符号等等,都是合法的字符类型。关于Unicode参考文章
由于 Unicode 都是 4 个字节编码,因此字符类型也是占用 4 个字节:
Rust 的字符只能用 ‘’ 来表示, “” 是留给字符串的。

fn main() {
    let x = '余';
    println!("{}",std::mem::size_of_val(&x)); // 4 
}

bool类型

Rust 中的布尔类型有两个可能的值:true false,布尔值占用内存的大小为 1 个字节:

fn main() {
let ok = true;

let pass: bool = false; // 使用类型标注,显式指定f的类型

if ok{
  //.....
}

}

使用布尔类型的场景主要在于流程控制.

单元类型

单元类型可以理解为一个站位的类型。什么意思?main函数大家都知道,这个函数返回什么呢?这种没有实际返回值的函数在Rust中称为“发散函数”,例如println!()也是一样。文章来源地址https://www.toymoban.com/news/detail-838215.html

到了这里,关于3.Rust数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust 基础入门 —— 字符、布尔、单元 类型

    对于字符类型我们有更大的自由性,概括一下: 更大的编码范围,让rust 可以展示更多的内容。 统一的字节空间,字符也是四个字节的内存大小。 严格区分的 \\\"\\\" 和 \\\'\\\' 前者用于字符串、后者是字符。 说明一点, bool 类型的 应用场景 主要就是用在 流程控制 中, 美妙的新鲜内

    2024年02月12日
    浏览(30)
  • 【Rust 基础篇】Rust数据类型详解

    Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种数据类型,并提供相关代码示例。 Rust的基本数据类型包括布尔类型、整数类型、浮点类型和字符类型。 1、布尔类型(bool) 布

    2024年02月11日
    浏览(38)
  • rust学习-类型转换

    根据其他类型生成自己 把其他类型转为目的类型 要把任何类型转换成 String,只需要实现那个类型的 ToString trait 实现fmt::Display trait,它会自动提供 ToString,并且还可以用来打印类型 用 parse 函数 只要对目标类型实现了 FromStr trait,就可以用 parse 把字符串转换成目标类型 “涡

    2024年02月11日
    浏览(19)
  • Rust语言从入门到入坑——(5)Rust 所有权

    主要介绍Rust所有权的知识,涉及到变量的作用域,内存释放机制,移动,克隆,引用等知识,很多知识是Rust语言特有机制。 所有权有以下三条规则: - Rust 中的每个值都有一个变量,称为其所有者。 - 一次只能有一个所有者。 - 当所有者不在程序运行范围时,该值将被删除

    2024年02月10日
    浏览(34)
  • Rust编程语言入门之Rust的面向对象编程特性

    Rust 受到多种编程范式的影响,包括面向对象 面向对象通常包含以下特性:命名对象、封装、继承 “设计模式四人帮”在《设计模型》中给面向对象的定义: 面向对象的程序由对象组成 对象包装了数据和操作这些数据的过程,这些过程通常被称作方法或操作 基于此定义:

    2023年04月21日
    浏览(33)
  • Rust语言入门

    (1)、编译:rust main.rs (2)、运行: Window:.main.exe Linux/mac:./main 定义函数:fn main(){},没有参数,没有返回值。 main函数很特别:它是每个Rust可执行程序最先运行的代码; 打印文本:println! Cargo是Rush的构建系统和包管理工具 构建代码、下载依赖的库、构建这些库。。。

    2024年02月16日
    浏览(30)
  • Rust 学习笔记 - 流程控制 与 Range 类型

    任何一门编程语言几乎都脱离不了:变量、基本类型、函数、注释、循环、条件判断,这是一门编程语言的语法基础,只有当掌握这些基础语法及概念才能更好的学习 Rust。 if 语句在其他语言中很常见,这里不再多做解释,看注释即可。 if  表达式也支持 if...else if...else 语句

    2024年02月20日
    浏览(25)
  • 3.Rust数据类型

    Rust 每个值都有其确切的数据类型,总的来说可以分为两类:基本类型和复合类型。 Rust是一个强类型语言与js不同,我们在声明变量时就要指定该变量的类型,编译器必须在编译期知道我们所有变量的类型。当然大多时聪明的编译器可以自动推导类型,但为了保证代码质量和

    2024年03月10日
    浏览(48)
  • rust入门系列之Rust介绍及开发环境搭建

    Rust基本介绍 网站: https://www.rust-lang.org/ rust是什么 开发rust语言的初衷是: 在软件发展速度跟不上硬件发展速度,无法在语言层面充分的利用硬件多核cpu不断提升的性能和 在系统界别软件开发上,C++出生比较早,内存管理容易出现安全问题的背景下。 为了解决开发系统界别软

    2024年02月12日
    浏览(48)
  • 快速配置 Rust 开发环境并编写一个小应用

    安装: curl --proto \\\'=https\\\' --tlsv1.2 -sSf https://sh.rustup.rs | sh 更新: Rust 的升级非常频繁. 如果安装 Rustup 后已有一段时间,那么很可能 Rust 版本已经过时, 运行 rustup update 获取最新版本的 Rust rustc:编译Rust程序 rustc只适合简单的Rust程序,较大型的项目还是推荐使用Cargo Cargo:Rust 的构建

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包