Hello World!
第一个程序肯定是Hello World啦
1 | fn main(){ |
运行结果
1 | hello world |
println!
使用规范
1 | - ``,which uses the `Display` trait |
测试代码如下
1 | fn main(){ |
运行结果
1 | int 1 |
变量
无mut
1 | fn main(){ |
运行结果
1 | Hello World |
注意!无mut,这个变量类似于常量
,是不可以更改的。比如如下代码就会报错
1 | fn main(){ |
上述代码会弹出cannot assign twice to immutable variable
报错,可以通过mut解决
有mut
1 | fn main(){ |
运行结果
1 | Hello World |
tuple多变量赋值
1 | fn main(){ |
运行结果
1 | 1 2 |
综合rust的特性作出以下解释
let mut x
应该分割成两个部分 let
mut x
,mut x
表示可读写变量x
let x
应该分割成两个部分 let
x
,由于变量x
缺省,表示只可读变量x
多变量赋值let (x,y……)
应该分割成两个部分 let
(x,y……)
变量类型和初始化
定义i32变量举例
1 | fn main(){ |
运行结果
1 | 268435455 |
定义char变量举例
1 | fn main(){ |
运行结果
1 | 1 |
变量声明时的一些特性
1 | fn main(){ |
可以先声明后初始化
1 | fn test(condition: bool){ |
运行结果
1 | 1 |
rust基础变量类型如下
1 | bool:只有true和false,可以参与&&、||、|、&、^运算 |
变量遮蔽
简单来说就是同名变量覆盖,例子如下
1 | fn main(){ |
运行结果
1 | 256 |
从上述代码中,被遮蔽的变量已经无法使用了
那么变量遮蔽有什么用呢?有一个比较好的用处就是将变量从只可读和可读可写之间的状态进行转换,例子如下
1 | fn main(){ |
运行结果
1 | [5,5] |
变量推导
声明变量并初始化的时候,如果直接初始化为一个复杂的结构,rust会自动对其进行推导,无需具体定义它的类型
案例1
1 | fn main(){ |
运行结果
1 | [[1,2],[3,4],[5,6]] |
案例2
1 | fn main(){ |
运行结果
1 | ["Jack", "Mike", "Jill"] |
上述代码中,并没有声明Vec中的类型,通过rust变量推导,方便的对变量进行初始化
变量类型别名
类似于C语言中的typedef
1 | type Age = u32; |
运行结果
1 | 32 |
tuple
1 | fn main(){ |
运行结果
1 | (1,(true,false)) |
上述案例汇总let (x,y) = b
直接将数据从b
中取出,这是一个非常方便的方法
Rust IO篇
读取文件并输出
1 | use std::fs::File; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咲夜南梦's 博客!
评论