当前位置: 首页 > news >正文

Rust-03-数据类型

在 Rust 中,每一个值都属于某一个 数据类型,这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。Rust 是 静态类型语言,也就是说在编译时就必须知道所有变量的类型。根据值及其使用方式,编译器通常可以推断出我们想要用的类型。当多种类型均有可能时,必须增加类型注解,Rust语言中的数据类型包括基础数据类型和复合类型。

一、基础数据类型

1.整数型

整数型:Rust提供了多种整数类型,如i32、u32、i64和u64等,分别代表有符号和无符号的32位和64位整数。整数类型的选择取决于你需要的数值范围和性能要求。

LengthSignedUnsigned
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
archisizeusize

2.浮点型

浮点数型:浮点数类型用于表示带有小数的数值,包括f32和f64,分别是32位和64位浮点数。在进行数学计算时,选择合适的精度可以避免不必要的性能损耗。

fn main() {let x = 2.0; // f64let y: f32 = 3.0; // f32
}

3.布尔型

布尔型:布尔型(bool)是逻辑值true和false的集合,常用于条件判断和逻辑运算。

fn main() {let t = true;let f: bool = false; // with explicit type annotation
}

4.字符型

字符型:字符类型(char)用于表示单个Unicode字符。与C语言不同,Rust的char类型使用UTF-8编码,能表示Unicode扩展字符集。

fn main() {let c = 'z';let z: char = 'ℤ'; // with explicit type annotationlet heart_eyed_cat = '😻';
}

二、复合数据类型

1.数组

数组允许你存储同一类型的多个值。它们在内存中是连续的,并且长度固定。数组的类型签名中包含了元素的类型和数组的长度。

let months = ["January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December"];
let ja = months[0];

2.元组

元组(tuple)可以存储不同类型的多个值。它们是有序的,并且每个位置可以有不同的类型。元组通常用于一次性返回多个值。
元组是一个将多个其他类型的值组合进一个复合类型的主要方式。元组长度固定:一旦声明,其长度不会增大或缩小。元组的第一个索引值是 0。可以使用点号(. )后跟值的索引来直接访问它们。

fn main() {let tup = (500, 6.4, 1); // 元组let (x, y, z) = tup; // 模式匹配解构println!("The value of y is: {y}");let x = tup.0;
}

当确定元素个数不会改变时,数组会更有用。例如,在一个程序中使用月份名字时,你更应趋向于使用数组而不是 vector,因为你确定只会有 12 个元素。

三、总结

fn main() {let x:i32 = 10; // 整形let y:f32 = 2.0; // 浮点型let hex = 0xff; // 16进制let byte = b'A'; // 单字节字符仅限于 u8let bool = true; // 布尔let c = 'c'; // 字符let c = '🐕';let tup = (10,"hello",true); // 元组let id = tup.0;let array = [3;5]; // 数组let idx = array[x];
}
http://www.lryc.cn/news/369304.html

相关文章:

  • 代理IP使用api接
  • C++中的适配器模式
  • MySQL入门学习-聚合和分组.最大值(MAX()函数)
  • LLM大语言模型(十六):最新开源 GLM4-9B 本地部署,带不动,根本带不动
  • 【JVM】JVM 的内存区域
  • intel新CPU性能提升68%!却在内存上违反祖训
  • stm32MP135裸机编程:修改官方GPIO例程在DDR中点亮第一颗LED灯
  • 探索乡村振兴新模式:发挥科技创新在乡村振兴中的引领作用,构建智慧农业体系,助力美丽乡村建设
  • 机器学习笔记:focal loss
  • Python编程:解锁超能力,开挂人生!
  • TSINGSEE青犀视频:城市道路积水智能监管,智慧城市的守护者
  • 几款免费又好用的项目管理工具(甘特图)
  • 落地台灯什么牌子的比较好?五款适合学生使用的大路灯分享
  • (免费领源码)基于 node.js#vue#mysql的网上游戏商城35112-计算机毕业设计项目选题推荐
  • [2024-06]-[大模型]-[Ollama] 0-相关命令
  • Image组件无法设置长按事件
  • 计算机网络 —— 数据链路层(VLAN)
  • Redis基本操作介绍
  • Unity3d使用3D WebView for Windows and macOS打开全景网页(720云)操作问题记录
  • 把文件从一台linux机器上传到另一台linux机器上
  • WT32-ETH01作为TCP Server进行通讯
  • mvn install -DskipTests
  • Lua搭建网站后台教程
  • Java | Leetcode Java题解之第137题只出现一次的数字II
  • 大数据技术Hbase列数据库——topic3
  • Sklearn基础教程:机器学习界的瑞士军刀
  • Python异步爬虫批量下载图片-协程
  • 力扣 42. 接雨水
  • Elastic Platform 8.14:ES|QL 正式发布、静态加密和向量搜索优化
  • UE4获取动画序列资产的动画时长