2024 Rust现代实用教程:变量与常见数据类型
文章目录
- 一、Rust中的变量基础知识
- 1.Rust中的变量是默认不可变的
- 2.使用mut关键字进行可变声明
- 3.Shadowing Var iables并不是重新赋值
- 4.Example
- 二、常量const与静态变量static
- 1.const常量
- 参考
一、Rust中的变量基础知识
1.在Rust中,使用Iet关键字来声明变量
2.Rust支持类型推导,但你也可以显式指定变量的类型:
let x:i32=5;/显式指定x的类型为i32
3.变量名蛇形命名法(Snake Case),而枚举和结构体命名使用帕斯卡命名法(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}");新方法
1.Rust中的变量是默认不可变的
不可变性是Rust实现其可靠性和安全性目标的关键
它迫使程序员更深入地思考程序状态的变化,并明确哪些部分的程序状态可能会发生变化的
不可变性有助于防止一类常见的错误,如数据竞争和并发问题
2.使用mut关键字进行可变声明
如果你希望一个变量是可变的,你需要使用ut关键字进行明确声明
let mut y=10;/可变变量
y=20;//合法的修改
3.Shadowing Var iables并不是重新赋值
Rust允许您隐藏一个变量,这意味着您可以声明一个与现有变量同名的新变量,
- 从而有效地隐藏前一个变量
- 可以改变值
- 可以改变类型
- 可以改变可变性
4.Example
cargo new project
fn main() {println!("Hello, world!");// 不可变与命名let _nice_count = 100;let _nice_number: i16 = 100;// nice_number=1//shadowinglet x = 5;{// 命名空间let x = 10;println!("inner x: {}", x);} //内部的x被销毁println!("outer x: {x}");// 在同一个作用域下重新声明了下,最终覆盖了之前的xlet x = "hello";println!("New x: {x}");// 可以重定义类型 可变性let mut x = "this";println!("mut x: {x}");x = "that";println!("mut x: {x}");
}
编译以及运行
cargo runCompiling project v0.1.0 (/home/wangji/installer/rust/project)Finished dev [unoptimized + debuginfo] target(s) in 0.27sRunning `target/debug/project`
Hello, world!
inner x: 10
outer x: 5
New x: hello
mut x: this
mut x: that
二、常量const与静态变量static
1.const常量
常量的值必须是在编译时已知的常量表达式,必须指定类型与值
- 与C语言的宏定义(宏替换)不同,Rust的const常量的值被直接嵌入到生成的底层机器代码中,而不是进行简单的字符替换
常量名与静态变量命名必须全部大写,单词之间加入下划线
常量的作用域是块级作用域,它们只在声明它们的作用域内可见
参考
- 2024 Rust现代实用教程:2.1-2.4