简单介绍下rustlang:
Rust 是一门系统级编程语言,被设计为保证内存和线程安全,防止段错误产生。作为系统级编程语言,它的基本理念是 “零开销抽象”。理论上来说,它的速度与 C/C++ 同级。Rust 可以被归为通用的、多范式、编译型的编程语言,类似 C/C++。与这两门编程语言不同的是,Rust 是线程安全的!Rust 编程语言的目标是,创建一个安全和并发的软件系统。它强调安全性、并发和内存控制。尽管 Rust 借用了 C/C++ 的语法,却杜绝了空指针和悬挂指针,而这二者是 C/C++ 中系统崩溃、内存泄露和不安全代码的根源。
虽然 Rust 是一门系统级编程语言,但并不意味着它只能写底层程序(操作系统、驱动、工具、数据库、搜索引擎等),它的抽象层次之高完全给人惊艳的感觉,实践证明它对问题建模的能力和方便性不比 C++/Java/Python/Ruby 差。但 Haskell 这类超高抽象语言,也不是 Rust 的发展方向。Rust 力求在抽象与现实世界中找到一个平衡
关于rust的一切。不多说,只在这里说一句:Rust 已经在 StackOverflow 的年度语言评选中,连续 4 年荣获“程序员最喜爱语言”第一名(2016, 2017, 2018, 2019)。
好吧,开始我们的学习。
1)安装。
参考官网:https://www.rust-lang.org/zh-CN/tools/install
2)工具。
这里用vscode。
这里推荐的rust的插件有:
Rust Extension Pack
Rust Test Explorer
基本已经够了。
好了,下面我们来写代码 :
首先,我们还是用官网的示例,因为这个太经典了。
a.)先来了解可爱的cargo:
### Cargo:Rust 的构建工具和包管理器
您在安装 Rustup 时,也会安装 Rust 构建工具和包管理器的最新稳定版,即 Cargo。Cargo 可以做很多事情:
* `cargo build`可以构建项目
* `cargo run`可以运行项目
* `cargo test`可以测试项目
* `cargo doc`可以为项目构建文档
* `cargo publish`可以将库发布到[crates.io](https://crates.io/)。
要检查您是否安装了 Rust 和 Cargo,可以在终端中运行:
`cargo --version`
要详细研究cargo可以到这里:https://doc.rust-lang.org/cargo/index.html
b.)创建新项目
我们将在新的 Rust 开发环境中编写一个小应用。首先用 Cargo 创建一个新项目。在您的终端中执行:
`cargo new hello-rust`
这会生成一个名为`hello-rust`的新目录,其中包含以下文件:
~~~
hello-rust
|- Cargo.toml
|- src
|- main.rs
~~~
`Cargo.toml`为 Rust 的清单文件。其中包含了项目的元数据和依赖库。
`src/main.rs`为编写应用代码的地方。
* * *
`cargo new`会生成一个新的“Hello, world!”项目!我们可以进入新创建的目录中,执行下面的命令来运行此程序:
`cargo run`
您应该会在终端中看到如下内容:
~~~
$ cargo run
Compiling hello-rust v0.1.0 (/Users/ag_dubs/rust/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 1.34s
Running `target/debug/hello-rust`
Hello, world!b.)
~~~
现在我们来为应用添加依赖。您可以在[crates.io](https://crates.io/),即 Rust 包的仓库中找到所有类别的库。在 Rust 中,我们通常把包称作“crates”。
在本项目中,我们使用了名为[`ferris-says`](https://crates.io/crates/ferris-says)的库。
我们在`Cargo.toml`文件中添加以下信息(从 crate 页面上获取):
~~~
[dependencies]
ferris-says = "0.1"
~~~
接着运行:
`cargo build`
…之后 Cargo 就会安装该依赖。
运行此命令会创建一个新文件`Cargo.lock`,该文件记录了本地所用依赖库的精确版本。
要使用该依赖库,我们可以打开`main.rs`,删除其中所有的内容(它不过是个示例而已),然后在其中添加下面这行代码:
~~~
use ferris_says::say;
~~~
这样我们就可以使用`ferris-says`crate 中导出的`say`函数了。``在`main.rs`中添加以下代码:``
~~~
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};
fn main() {
let stdout = stdout();
let out = b"Hello fellow Rustaceans!";
let width = 24;
let mut writer = BufWriter::new(stdout.lock());
say(out, width, &mut writer).unwrap();
}
~~~
保存完毕后,我们可以输入以下命令来运行此应用:
`cargo run`
如果一切正确,您会看到该应用将以下内容打印到了屏幕上:
~~~
----------------------------
| Hello fellow Rustaceans! |
----------------------------
\
\
_~^~^~_
\) / o o \ (/
'_ - _'
/ '-----' \
如果你能看到最后的打印结果。那么恭喜你,你已经可以写rust的代码了。
~~~
- rustlang语言零基础快速入门(1)开篇
- rustlang语言零基础快速入门(2)VSCODE配置
- rustlang语言零基础快速入门(3)所有权Ownership
- rustlang语言零基础快速入门(4)
- rustlang语言零基础快速入门(5)
- rustlang语言零基础快速入门(6)变量绑定
- rustlang语言零基础快速入门(7)函数Functions与闭包Closure
- rustlang语言零基础快速入门(8)Operators操作符
- rustlang语言零基础快速入门(9)Control Flows流程控制
- rustlang语言零基础快速入门(10)Vectors容器
- rustlang语言零基础快速入门(11)Structs结构体
- rustlang语言零基础快速入门(12)Enums枚举
- rustlang语言零基础快速入门(13)Generics泛型
- rustlang语言零基础快速入门(14)Impls & Traits实现与特征
- rustlang语言零基础快速入门(15)Unit Testing单元测试
- rustlang语言零基础快速入门(16)代码组织与模块化
- rustlang语言零基础快速入门(17)装箱crates
- rustlang语言零基础快速入门(18)use关键词
- rustlang语言零基础快速入门(19)多线程
- rustlang语言零基础快速入门(20)错误处理
- rustlang语言零基础快速入门(21)智能指针
- rustlang语言零基础快速入门(22)宏Macro
- rustlang语言零基础快速入门(23)实战1:猜数字游戏
- rustlang语言零基础快速入门(24)实战2:命令行工具minigrep(1)
- rustlang语言零基础快速入门(25)实战2:命令行工具minigrep(2)
- rustlang语言零基础快速入门(26)实战3:Http服务器
- rustlang语言零基础快速入门(26)实战3:Http服务器(多线程版本)
- rustlang语言零基础快速入门(27)实战4:从零实现BTC区块链
- rustlang语言零基础快速入门(28)实战5:实现BTC价格转换工具
- rustlang语言零基础快速入门(29)实战6:BDD工具cucumber_rust