rust学习第一天——hello rust
rust语言介绍
rust是一门专注于性能和安全性的多范式编程语言,特别是线程安全上具有出色表现。rust和cpp的语法类似,并且没有通过gc的方式提供了安全的内存管理(这点很赞)。在2016年rust被评选为stackoverflow开发者最受欢迎的编程语言。
rust的安装
rust的安装很方便,对于首次安装rust官方提供了shell脚本。在Linux和macOS上运行下面命令即可:
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
如果成功安装命令行会打印:
Rust is installed now. Great!
可能会让你设置全局的环境变量,我是在/etc/profile里面设置的。追加如下命令即可
export PATH="$HOME/.cargo/bin":"$PATH"
测试是否安装成功,即可重新执行下环境变量
source /etc/profile
然后执行,下面命令。如果没有报错,并且显示出了rustc版本就安装成功了。
rustc --version
ps:我的电脑是mac,rust的默认安装目录在$HOME/.cargo/
rust的更新
我们可以通过官方的rustup工具来更新rust。如果配置好了环境变量,直接执行:
rustup update
更新rustup工具本身:
rustup self update
hello rust
下面我们就要编写每一门语言的第一个程序——hello world程序。
首先,创建一个目录叫hello_world
mkdir hello_world
然后进入这个目录 创建一个文件叫 main.rs
cd hello_world
touch main.rs
用vim或者编辑器来写第一个hello world程序,写入内容如下,从官网copy出来的。
fn main() {
println!("Hello, World!");
}
ps:main方法是都叫这个,是程序运行的入口。fn类似js的function标示,用来指名是一个函数。println和c语言的控制台打印方法一样只是后面多了一个“!”,目前我们先不用管它(在rust里面这个代表macro,我现在还不太懂)。总的来说是比较好理解的,语法和c++非常类似。
运行rust程序
rust是一门静态语言,需要经过编译和链接才能执行,生成可以执行的二进制文件。
编译
rust的编译程序叫做rustc,我们编译刚才写的main.rs程序
rustc main.rs
执行以后如果没有语法错误,那么就会生成对应的可执行文件main,在当前目录下执行main程序结果如下
./main
Hello, World!
ps:对比gcc来说执行步骤要少,使用起来更方便的。
hello cargo
cargo是rust的构建和包管理工具(对比java的话,就是maven了。对比python就是pip)。cargo在rust的安装包中已经附带了,我们不用再自行安装。
校验是否安装成功
cargo --version
如果没有报错,cargo就安装成功了。
使用cargo创建一个项目
我们用cargo创建一个新项目叫hello_cargo,执行命令如下
cargo new hello_cargo
执行成功后,就会在当前目录下创建hello_cargo目录。不仅如此,我们进入到hello_cargo目录,可以看到如下:
.git目录:是git程序的目录
.gitignore:git忽略配置文件
Cargo.lock:cargo构建相关文件,暂时忽略
src目录:程序的根目录,里面有main.rs文件
target目录:程序的生成目录,里面有编译生成的文件
Cargo.toml:cargo构建工具的配置文件,类似maven的pom.xml。主要内容如下
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["xxxxxxx"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
package下面是程序的信息:项目名,版本,作者,时间等
dependencies是项目声明的依赖,eg:rand = "0.5.5"。项目的依赖都会写到这里。
使用cargo构建和运行一个项目
因为cargo初始化后,已经帮我们写好最简单的helloworld程序,我们可以直接运行试试看。
首先构建项目:在项目目录(hello_cargo)执行以下命令,成功后会打印下面的信息
cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
然后执行运行命令:打印信息如下
cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
Running `target/debug/hello_cargo`
Hello, world!
这样就使用cargo完成了一次项目的运行
其他命令
cargo check
校验程序语法,项目是否正确。不会去生成构建文件,速度比build要快很多。不需要运行只是检查正确性,可以使用check命令。
cargo fmt
格式化命令,格式化项目程序的格式。rust默认的格式风格感觉和java类似。挺喜欢这个风格,写完代码后都格式化一下。
其他还有很多强大的命令,后面继续学习。
总结
总的来说rust是一门很棒的语言,拥有很好的语法特性,高性能,方便的构建工具等等。我还是比较喜欢的,希望以后能发展的越来越好,身边的程序员对这门语言也很推荐。下一期讲解rust的基本语法知识了。