Rust学习笔记003-变量与可变性
变量声明
语法格式:
|
|
有几点要注意:
- 以关键字
let
开头,类型一定跟在冒号:
后面; - 变量必须先声明,初始化后才能使用;
初始化
Rust中,每个变量必须被合理的初始化后才能被使用。使用未初始化的变量,不能被编译通过。
|
|
编译器会帮我们做一个执行路径的静态分析,确保变量在使用前一定被初始化。
|
|
可变性
Rust中变量默认是不可变的,比如下面运行会报错:
|
|
如果想让变量可写,可以使用关键字mut
。
|
|
此时,变量才是可读写的。
实际上,let
语句在这里引入了模式解构,mut x
应该被视为一个组合,还可以使用这个方式声明多个变量。
|
|
隐藏性
看下面代码:
|
|
我们可以定义一个与之前变量同名的变量,而且不会报错,新变量会隐藏之前的变量,我们称之为第一个变量被第二个变量隐藏了。
隐藏性和mut的区别
- 当对同名变量重新赋值时,如果没有使用
let
会导致编译错误; - 当再次使用
let
时,实际上新创建了变量,我们可以改变变量的类型,但复用这个名字;
和常量的区别
- 不允许对常量使用
mut
; - 声明常量使用
const
关键字,而不是let
; - 必须注明常量的类型;
- 常量可以在任何作用域声明,包括全局作用域;
- 常量只能被设置为常量表达式,而不能是函数调用的结果,或任何其他只能在运行时计算出的值;
- 原文作者:maratrix
- 原文链接:https://maratrix.cn/post/2020/02/04/003-rust-variable-notes/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。