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

rust类型和变量(二)

基础知识

Rust中的变量基础知识
1.在Rust中,使用Iet关键字来声明变量
2.Rust支持类型推导,但你也可以显式指定变量的类型:
Ietx:i32=5;/显式指定x的类型为i32
3.变量名蛇形命名法(Snake Case),i
而枚举和结构体命名使用帕斯卡命名法(Pasca|Case)
如果变量没有用到可以前置下划线,消除警告
4.强制类型转换Casting a Value to a Different Type
let a 3.1;let b a as i32;
5.打印变量({}与{:?}需要实现特质之后章节会介绍,基础类型默认实现)
1.printIn!("val:{}"x);
2.printIn!("val:{x}");

创建变量:let 关键字
//变量默认是不可变的
// 可变变量:变量名称前加 mut
//常量:const 关键字
// Shadowing: 隐藏


const A_CONST: i32 = 42; // 声明常量fn main() {println!("Hello, world!");let mut x = 5; // 可变变量println!("the value of x is {}",x);x = 6;println!("{}",x);println!("const is {}",A_CONST);let xx = getNumber();
}fn getNumber() -> i32{42
}

2.基础数据类型

基础数据类型
·Integer types默认推断为i32
·i8、i16、i32、i64、i128
Unsigned Integer Types
·u8、u16、u32、u64、u128
·Platform-Specific Integer Type(由平台决定)
·usize
·isize
·Float Typesf32与f64
·尽量用f64,
除非你清楚边界需要空有很多种啊·Boolean Values
·true
·false
·Character Types
·Rust支持Unicode字符
表示char类型使用单引号

类型

基本数据类型
整数类型:如 i8, i16, i32, i64, i128, u8, u16, u32, u64, u128
浮点类型:f32, f64
字符类型:char
布尔类型:bool
复合数据类型
元组:所有元素都实现 Debug 的元组自动实现 Debug。
数组:数组 [T; N] 在 T 实现 Debug 的情况下自动实现 Debug。
标准库类型
字符串类型:String 和字符串切片 &str
集合类型:Vec<T>, HashMap<K, V>, HashSet<T>, BTreeMap<K, V>, BTreeSet<T> 等,其中 T, K, V 需实现 Debug。
智能指针:如 Box<T>, Rc<T>, Arc<T>, Cell<T>, RefCell<T>,其中 T 需实现 Debug。
Option:Option<T> 在 T 实现 Debug 的情况下自动实现 Debug。
Result:Result<T, E> 在 T 和 E 都实现 Debug 的情况下自动实现 Debug。
其他
指针:裸指针 *const T 和 *mut T 也实现了 Debug。
http://www.lryc.cn/news/348425.html

相关文章:

  • linux学习:多媒体开发库SDL+视频、音频、事件子系统+处理yuv视频源
  • 基于门控的循环神经网络:LSTM
  • Web常见的攻击方式及其防御策略
  • 关于SQL
  • 大模型时代下两种few shot高效文本分类方法
  • Linux0.11 中全局描述符表(GDT)
  • 搜维尔科技:数据手套用于外固定虚拟现实模拟 、外固定增强现实模拟
  • 《三》菜单栏_工具栏_状态栏动作与实现
  • 基于NTP服务器获取网络时间的实现
  • Web APIs(获取元素+操作元素+节点操作)
  • Android adb shell关于CPU核的命令
  • 基于springboot+mybatis+vue的项目实战之页面参数传递
  • CSS-浮动
  • MFC:字符串处理
  • 虚拟仿真云平台在教育应用中的优势和意义
  • CPU的的处理流程如何快速记忆
  • AI视频教程下载:基于OpenAl、LangChain、 Replicate开发AI应用程序
  • 【C++】继承相关(基类与派生类的继承关系以及细节整理)
  • 【Web后端】监听器Listener
  • C/C++ 初级球球大作战练手
  • ES6之字符串的扩展
  • 微信小程序开发,构建NPM报错解决
  • 【异常】SpringBoot整合RabbitMQ-发送消息报错
  • 通过钉钉卡片进行工单审批
  • C语言中的控制语句:深入解析与案例实践2
  • 【ARM Cortex-M 系列 2.1 -- Cortex-M7 Debug system registers】
  • 深入解析C#中的async和await关键字
  • 【VUE.js】前端框架——未完成
  • 开源的文件压缩和解压缩软件7-Zip
  • 搜维尔科技:Patchwork 3D 新功能:爆炸视图动画