rust学习(第一章)

目录

    • 安装环境
    • 添加依赖
    • [一个 Rust 小应用](#一个 Rust 小应用)
    • [这只螃蟹是谁? Ferris ?](#这只螃蟹是谁? Ferris ?)

安装环境

  1. 安装rust
    https://rust.p2hp.com/tools/install

建议直接选默认选项

安装可能有点慢,看网络情况

  1. hello world
    打开cmd
    输入cargo new hello-rust
    这会生成一个名为 hello-rust 的新目录,其中包含以下文件:
bash 复制代码
hello-rust
|- Cargo.toml
|- src
  |- main.rs

Cargo.toml 为 Rust 的清单文件。其中包含了项目的元数据和依赖库。

src/main.rs 为编写应用代码的地方。

进入hello-rust文件,输入cargo run

如果出现linker link.exe not found,请安装Visual Studio build tools

  1. 打开vscode,安装插件rust and friend
  2. 打开终端,输入cargo run,出现hello world,恭喜你,环境配置成功

添加依赖

  1. 在 Cargo.toml 文件中添加以下信息(从 crate 页面上获取):
rust 复制代码
[dependencies]
ferris-says = "0.2"

接着运行:cargo build,之后 Cargo 就会安装该依赖。

  1. 运行此命令会创建一个新文件 Cargo.lock,该文件记录了本地所用依赖库的精确版本。
    要使用该依赖库,我们可以打开 main.rs,删除其中所有的内容(它不过是个示例而已),然后在其中添加下面这行代码:
base 复制代码
use ferris_says::say;

这样我们就可以使用 ferris-says crate 中导出的 say 函数了。

一个 Rust 小应用

  1. 在 main.rs 中添加以下代码:
bash 复制代码
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};

fn main() {
    let stdout = stdout();
    let message = String::from("Hello fellow Rustaceans!");
    let width = message.chars().count();

    let mut writer = BufWriter::new(stdout.lock());
    say(message.as_bytes(), width, &mut writer).unwrap();
} 
  1. 保存完毕后,我们可以输入以下命令来运行此应用:
    cargo run
  2. 如果一切正确,您会看到该应用将以下内容打印到了屏幕上:
bash 复制代码
----------------------------
< Hello fellow Rustaceans! >
----------------------------
              \
               \
                 _~^~^~_
             \) /  o o  \ (/
               '_   -   _'
               / '-----' \

这只螃蟹是谁? Ferris ?

Ferris 是 Rust 社区的非官方吉祥物。很多 Rust 程序员自称"Rustaceans", 它与"crustacean"相似。 我们用"they"、"them"等代词,而不用带性别的代词来指代 Ferris。

Ferris 与形容词"ferrous"相似,它的含义与铁有关。由于 Rust(锈)通常由铁形成, 因此它算得上是个吉祥物名字的有趣来源。

相关推荐
quantdash_cc2 分钟前
如何检查滚动收益率计算中的窗口长度不足?——从数学定义到 Pandas 实现
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
衍生星球18 分钟前
【Java 语言】— 方法(方法定义、调用、参数、返回值、方法重载)
java·开发语言·方法
用户144984334647522 分钟前
我为什么做一个开源的 Mac 清理工具
rust
Be for thing24 分钟前
PyTorch自动求导Autograd详解|requires_grad、backward、grad、梯度清零
pytorch·学习·1024程序员节
CodeGL24 分钟前
16、Python Web开发
开发语言·前端·python
喵了几个咪26 分钟前
GoWind UBA 拆解:把 Doris UNIQUE KEY 翻译成 ClickHouse——读数正确性对齐实录
开发语言·后端·clickhouse·微服务·golang·gowind
FRing0331 分钟前
JavaScript入门到精通二十九(内置构造函数(Object、Array))
开发语言·前端·javascript
syagain_zsx34 分钟前
ODB 与 MySQL:C++ 里的 ORM 实践(类即表、事务铁律与查询封装)
开发语言·数据库·c++·mysql·工具库·1024程序员节
小嘉丶学长37 分钟前
Day08 · 字符串(二)
服务器·开发语言·python·学习·1024程序员节
萌动的小火苗1 小时前
MQTT的QoS0、QoS1、QoS2有什么区别?
开发语言·网络·python·php·信息与通信