每日一秀(Rust every day) - 第二天
体验 Rust的依赖引入
没有选择介绍数据结构之类的,也是因为Rust的项目依赖管理确实挺方便。像npm管理js项目的依赖,但是比npm更加清爽
试用 ferris-says.
这个模块 功能非常简单,就是输出一个banner, banner是Rust吉祥物 Ferris 说话的样子,边上有绑定的具体消息的 对话框。
0 . 替换国内pkg镜像
工欲善其事必先利其器
rustup 的镜像默认是米国线路,考虑到我天朝互联网情况错综复杂。非常有必要使用国内镜像来加速。
以linux为例, 配置环境变量,设置为清华大学开源镜像
$ # for bash
$ echo 'export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup' >> ~/.bash_profile
$ source ~/.bash_profile
这里大家要看自己平时的配置习惯, 决定 RUSTUP_DIST_SERVER 配入*/etc/profile* 还是 $HOME/.profile ……
这个配置对 rustup 安装rust也是有效的。推荐使用。
配置cargo crates 镜像,同样使用清华大学开源镜像
修改$HOME/.cargo/config文件 ,没有的话新建
[source.crates-io]
replace-with = 'tuna'
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
1. 创建 项目 let-ferris-say
# 新建 工程
cargo new let-ferris-say
# vscode 打开工程
code let-ferris-say
2. 添加 ferris-says 依赖
# 编辑 Cargo.toml ,dependencies 里添加 ferris-says = "0.2"
[dependencies]
ferris-says = "0.2"
运行 cargo build
, cargo 会自动 安装依赖,成功后,会在项目工程目录中生成一个Cargo.lock 文件。这时,我们就可以开心的调用ferris-says 玩耍一番。
3. 使用ferris-says
vscode 中编辑 main.rs
use ferris_says::say; // 引用 ferris_says的say方法, 和python的语法有点儿像
use std::io::{stdout, BufWriter}; // 标准库里引入 stdout 和 BufWriter
// main 方法, 和java,golang,c++ 类似的代码结构
fn main() {
let stdout = stdout(); // 实例化stdout
let message = String::from("Hello fellow Rustaceans!"); // 照着例子抄一份,
let width = message.chars().count();//字符串长度 作为ferris-says 对话框宽度
let mut writer = BufWriter::new(stdout.lock());
say(message.as_bytes(), width, &mut writer).unwrap(); // 调用ferris_says的say方法
}
然后 cargo run
看看效果吧, 不出意外的话,你会得到一个类似的小东西。
----------------------------
< Hello fellow Rustaceans! >
--------------------------
\
\
_~^~^~_
\) / o o \ (/
'_ - _'
/ '-----' \
每天进步一点点,虽然我很懒惰。