Rust学习第一天

1、cargo的简单使用

rust语言使用cargo进行创建,下载Rust官方工具后,我使用的是window.x86环境进行编译,需要配置MSVC,详情参考https://www.rust-lang.org/zh-CN/tools/install。

MSVC配置参考,https://blog.csdn.net/weixin_42481992/article/details/130005865。因为我的开发工具不是VScode,所以只需要完成Step1的内容就可以了。

GUI工具使用的是JetBrains旗下的RustRover,详情参考https://www.jetbrains.com/rust/nextversion/。

创建新项目

1
cargo new Projectname

构建项目

1
cargo build

运行项目

1
cargo run

!!需要注意,rust的项目名称必须符合蛇形命名法,否则在项目构建和项目运行的时候会出现

1
warning: crate `helloWorld` should have a snake case name | = note: `#[warn(non_snake_case)]` on by default = help: convert the identifier to snake case: `hello_world

这里一开始使用的项目构建名称为helloWorld为驼峰命名法,不符合Rust的命名规范,改为hello_world之后不在警告。

创建成功之后代码初试内容为:

1
2
3
fn main(){
println!("hello world!");
}

运行之后结果为

1
Hello, world!

第一个Rust程序就运行成功了!

2、创建变量

1
let a = 6;//a变量是不可变的

Rust中变量默认都是不可变的(没错是变量,不是常量),如果要改变为可变,则需要使用mut关键字来修饰变量。

1
let mut b = 6;//b变量是可变的

举个例子

1
2
let a = 6;
let a=12;

打印的结果为

1
a=12

但是如果我们把a定义为常量

1
2
const a = 6;
let a = 12;

这样就是非法的了,将报错无法编译

rust变量的值可以”重新绑定”,但在”重新绑定”以前不能私自被改变,这样可以确保在每一次”绑定”之后的区域里编译器可以充分的推理程序逻辑。

重影(Shadowing)

重影就是上述的”重新绑定”,就是指变量的名称可以被重新使用的机制:

1
2
3
4
5
6
fn main() {
let x = 5;
let x = x + 1;
let x = x * 2;
println!("The value of x is: {}", x);
}

运行结果为:

1
The value of x is: 12

重影与可变变量的赋值不是一个概念,重影是指用同一个名字重新代表另一个变量实体,其类型、可变属性和值都可以变化。但可变变量赋值仅能发生值的变化。

例如:

1
2
let mut s = "123";
s = s.len();

这段代码对先是声明s为一个整数型可变变量,但对s进行string类型赋值同时进行隐式转换则会报错。

1
2
let mut s = "123";
let s = s.len();

这段代码则不会报错

参考文章链接:

https://www.runoob.com/rust/rust-basic-syntax.html,

http://t.csdnimg.cn/kKcxF,

http://t.csdnimg.cn/t4Bnx