rust学习第一天——hello rust

rust Sep 8, 2020

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目录,可以看到如下:

20200908180320

.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的基本语法知识了。

引用

  1. 官方教程:https://doc.rust-lang.org/book/ch01-03-hello-cargo.html#creating-a-project-with-cargo
  2. 国内下载依赖很慢,办法是用国内的源 教程在这里:http://mirrors.ustc.edu.cn/help/crates.io-index.html