Rust学习笔记(一)

第一步要做的事情是


安装Rust编译环境(人人都有的windows)

咱工作机器是win7+mingw
所以直接到下面的链接下载Windows ([GNU ABI †]) (.msi)就好

https://www.rust-lang.org/en-US/downloads.html

安装完成后在mingw里输入"rustc --version"检查安装是否成功
如果安装成功会看到以下输出


Paste_Image.png

该来的总会来


Hello World

总之先创建一个放代码的文件夹

$ mkdir hello_world
$ cd hello_world

Rust源文件的后缀名是“.rs”,所以咱们现在要创建一个叫“main.rs”的文件然后把下面的代码放到里面。

fn main() 
{
    println!("Hello world!"); 
}
  • 第一行代码定义了一个没有参数没有返回值的函数main,因为咱主业是搞c++,无返回值的函数前面没有void还是感觉有点怪。
  • 第二行和最后一行是大括号把函数的实现代码包起来,这没啥好说的。
  • 第三行,这一行把hello world输出到屏幕,名字很直观print line;说起来官方的文档上特别强调缩进是4个空格,不要用tab,咱还以为用tab会有啥问题,特意试了下并没有啥功能上的区别能编能跑,果然还是强调码规范吧。值得一提的是,println!()这样表示调用的是Rust的宏,是meta编程的实现方式,如果去掉‘!’就是直接调用函数了。关于Rust宏的部分咱还没看到,总之慢慢来_(:з」∠)_。最后用‘;’结尾,因为咱主业是搞c++,咱觉得这很合理。

接下来咱们就要编了

$ rustc main.rs

运行完这个命令后同级目录下会出现一个main.exe,Linux或者mac就直接是main了,运行它!
然后咱们会看到

Paste_Image.png

总要搞个大项目


Cargo 碉堡了!

Cargo是Rust的包管理器和构建系统,能编咱们的工程,还能下载咱们工程依赖的库,还能编咱们下载下来的依赖库!因为咱还搞过iOS,咱觉得cocoapods很方便,看到Cargo有这功能咱很欣慰。
一般来说通过安装包安装Rust编译环境的都自带了Cargo,运行下面的命令来检查Cargo是否正常

$ cargo --version

如果成功咱们会看到

Paste_Image.png

接下来咱们用Cargo重新编译Hello world,但是咱们的工程文件夹目前的结构不是很合适,要稍微挪一挪

$ mkdir src
$ mv ./main.rs src
$ rm ./main.exe

在hello_world目录下创建一个文件,命名为Cargo.toml,注意C务必要大写。
这是一个TOML文件,用起来有点像INI,但是更强大(其实咱也没怎么用过_(:з」∠)_)。

接着把下面的代码写入Cargo.toml

[package]

name = "hello_world"
version = "0.0.1"
authors = [ "Your name " ]

[package]表示接下来的都是用来配置package的部分,接下来的三行配置程序名称、程序版本以及作者。

保存好后咱们开始build

$ cargo build

如果build成功咱们会看到

Paste_Image.png

运行!

$ ./target/debug/hello_world.exe
Paste_Image.png

换着法儿运行!

$ cargo run
Paste_Image.png

要快,要Release

输入以下命令来编Release版本,编译Release版本会让咱们的程序跑的更快,但是编译起来会更慢。

$ cargo build --release
Paste_Image.png

Cargo.lock是神马

在使用Cargo编译完咱们的工程后在咱们工作路径下会多出一个文件“Cargo.lock”

Paste_Image.png

里面的内容看起来应该是这个样子:

[root]
name = "hello_world"
version = "0.0.1"

Cargo用这个文件来跟踪咱们工程中的各种依赖。因为咱们写的hello_world没有任何依赖,所以咱们的Cargo.lock看起来超简单。在实际工作中咱们一般不用碰这个文件,一切交给超厉害的Cargo就好。

论如何轻松痛快的创建新项目

懒是推动科技发展的最强大的力量——孔子

超懒的咱要用Cargo new来轻松创建新项目

$ cargo new hello_worldex --bin

new之后跟的第一个参数是新项目路径,--bin表示这个新建项目是一个可执行程序。
运行完上面那条命令后,就会发现当前目录下多了一个hello_worldex文件夹。


Paste_Image.png

该文件夹中包含一个Cargo.toml 和一个src文件夹
打开Cargo.toml看看,……居然自动添加了咱的名字……

[package]
name = "hello_worldex"
version = "0.1.0"
authors = ["Renzhi"]

[dependencies]

咱们还会在src中找到自动生成的main.rs
内容如下

fn main() {
    println!("Hello, world!");
}

居然写好了hello world……咱很欣慰

参考资料


The Rust Programming Language
Cargo Guide

你可能感兴趣的:(Rust学习笔记(一))