rust学习笔记基础篇2--基础变量声明的基本规则(霜之小刀)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihn1987/article/details/79945940

rust学习笔记基础篇2–基础变量声明的基本规则(霜之小刀)

欢迎转载和引用,若有问题请联系
若有疑问,请联系
Email : lihn1011@163.com
QQ:2279557541


Rust的对变量的声明很严格,有严格的类型和必须在声明时进行初始化。
关于类型可以是显示的声明也可以使隐式的声明。
显示的使用
let vab:i32 = 123i32;
这里是想声明一个32位的有符号整数。
一方面在变量名后面的冒号后面对类型进行了说明,一方面在123这个整数后面对值的类型也做了说明,这是最严格的变量声明了。
但是类型也不是必须要写的,编译器也可以根据上下文推导出变量的类型。
如下方的写法都是没有问题的

let a = 123;//123默认被推导为i32的类型
let a1:i8 = 123;
let a2 = 123i16;

这样就知道变量的声明方式了,但这里又有一个问题,说的是变量,但是。。。我根本没办法修改这个变量的值,明明不可变,应该是常量的意思啊。比如下面这段代码就会在编译的时候报错

let a = 123;
a = 456;

编译错误为cannot assign twice to immutable variable a.
不能两次给不可变变量赋值。
这里就要引入另外一个关键词叫mut,表示变量可以被改变,这才是真的变量,二不加mut的说是常亮更合适。
定义可变变量的语法如下所示

let mut a = 123;
a = 456

这样编译就没有错误了,值也可以修改了
而试用这种声明方式的RUST内置类型有如下几种

有符号整数: i8, i16, i32, i64 和isize (指针大小)
无符号整数: u8, u16, u32, u64 和 usize (指针大小)
浮点: f32, f64
char Unicode标值一样 'a', 'α''∞' (每4字节)
bool 以及 truefalse

这里在说明下,上面的指针大小指的是,如果是64位电脑,那么就是占用8字节,如果是32位电脑就占用4字节。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页