[易学易懂系列|rustlang语言|零基础|快速入门|(1)]

· · 3440 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

今天我们来开一个新系列。

从零学习rustlang。

简单介绍下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

要检查您是否安装了 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)in1.34s    Running `target/debug/hello-rust`Hello, world!

b.)

添加依赖

现在我们来为应用添加依赖。您可以在crates.io,即 Rust 包的仓库中找到所有类别的库。在 Rust 中,我们通常把包称作“crates”。

在本项目中,我们使用了名为ferris-says的库。

我们在Cargo.toml文件中添加以下信息(从 crate 页面上获取):

[dependencies]ferris-says="0.1"

接着运行:

cargo build

…之后 Cargo 就会安装该依赖。

运行此命令会创建一个新文件Cargo.lock,该文件记录了本地所用依赖库的精确版本。

要使用该依赖库,我们可以打开main.rs,删除其中所有的内容(它不过是个示例而已),然后在其中添加下面这行代码:

useferris_says::say;

这样我们就可以使用ferris-sayscrate 中导出的say函数了。在main.rs中添加以下代码:

use ferris_says::say;// from the previous stepusestd::io::{stdout, BufWriter};fnmain(){    letstdout=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官网,已经没有被墙了。如果你发现有被墙的现象或遇到什么问题,欢迎加入:rust新手群,在这里我可以提供一些简单的帮助,加微信:360369487,注明:博客园+rust


本人精通java高并发,DDD,微服务等技术实践,以及python,golang技术栈。

本人精通java高并发,DDD,微服务等技术实践,以及python,golang技术栈。

本人名字郭莹城,坐标深圳,前IBM架构师、咨询师、敏捷开发技术教练,前IBM区块链研究小组成员、多年架构设计工作经验,《区块链核心技术与应用》作者之一,

现有成熟团队提供区块链开发相关业务(公链,交易所,钱包,Dapp,智能合约)。

工作微信&QQ:360369487,交易所开发与区块链钱包开发业务,加我注明:博客园+开发,想学习golang和rust的同学,也可以加我微信,备注:博客园+golang或博客园+rust,谢谢!


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:

查看原文:[易学易懂系列|rustlang语言|零基础|快速入门|(1)]

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3440 次点击  
加入收藏 微博
被以下专栏收入,发现更多相似内容
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传