打开终端,运行以下命令
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
这个命令会下载脚本然后进行rustup 工具最新版本的安装,安装成功后会提示
Rust is installed now. Great!
一些常用的rust包会依赖c 编译器,因此需要确认环境是否已有c 编译器。
请访问rust官网并按照说明安装Rust。window搭建环境还需要virtual studio的编译工具包。
下载rustinit 安装进程后进行安装即可
同样成功后,提示
Rust is installed now. Great!
使用rustup指令
rustup update
相信应该不会使用卸载的
rustup self uninstall
确认当前的rust版本
rustc --version
我当前使用的版本:
如果看到此信息,说明已经成功安装Rust !
如果在Windows上没有看到此信息,请检查Rust是否在%PATH%系统变量中。
我的开发环境是centos 7
首先创建我们的源代码文件 main.rs,编写以下代码
fn main() {
println!("Hello, world!");
}
rust是一门编译型语言,所以我们需要使用rustc将源代码编译成可执行文件.
$ rustc main.rs
$ ./main
Hello, world!
掌握其他编译型语言的同学应该知道,当我们的执行程序加载到内存中执行时,需要告知操作系统程序的执行入口,所以约定俗成的采用了main 函数名。
函数的语法格式声明如下:
fn main() {
}
println!("Hello, world!");
我们的main函数使用了 rust宏 println! 来打印hello world !的字符串。
至此,我们的第一个应用程序从编写->编译->执行,基本完成啦!
最后也衍生扩展下rust的函数语法格式跟其他语言的差异:
c++
//int 表示返回类型 + 函数名 + (参数列表) + {函数体}
int main(int argc, char* argv[]) {
return 0;
}
java
java的函数语法格式跟c++类似:
返回类型 函数名 (参数列表) {
函数体
}
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
go
语法格式:
func 函数名 (参数列表) (返回值列表){
函数体
}
package main // 声明 main 包
import (
"fmt" // 导入 fmt 包,打印字符串是需要用到
)
func main() { // 声明 main 主函数
fmt.Println("Hello World!") // 打印 Hello World!
}
很多时候,我们的生产需求不是输出一句hello world这么简单,更多的业务需求跟软件工程需要我们构建出一个项目,可能会依赖其他开发者开发好或者我们自己构建的包,那么可以使用rust的工具cargo来实现包管理,cargo在我们安装rust的时候便自带了,可以通过以下指令查看当前版本:
cargo --version
使用以下命令构建我们的hello_cargo工程
$ cargo new hello_cargo
$ cd hello_cargo
创建后,在我们的hello_cargo工程里包含如下的目录结构:
其内容采用toml(Tom’s Obvious, Minimal Language)格式,创造内容被大家所使用多么牛逼呀,相信大家都有一个当造物者的梦想,能创造说明我们真正理解了原理,所以造轮子就尽情地去造吧,重复了又怎样,自己造的轮子才是自己的。
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["Your Name " ]
edition = "2018"
[dependencies]
打开src/main.rs
fn main() {
println!("Hello, world!");
}
src只存放我们的源代码,而顶层目录只放置配置,或者readme、license等其他文件
在我们的顶层目录执行一下指令
cargo build
编译成功后,会生成Cargo.lock文件即target目录
执行二进制文件hello_cargo
./target/debug/hello_cargo 或者 cargo run 指令
当然了,我们真正要发布的是release版本,而不是debug版本,那么可以使用以下命令构建:
release 表示构建参数
cargo build --release