快速配置 Rust 开发环境并编写一个小应用

news2025/1/16 13:55:04

安装:


curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh


更新:


Rust 的升级非常频繁. 如果安装 Rustup 后已有一段时间,那么很可能 Rust 版本已经过时, 运行 rustup update 获取最新版本的 Rust


alt

rustc:编译Rust程序


alt

rustc只适合简单的Rust程序,较大型的项目还是推荐使用Cargo


Cargo:Rust 的构建工具和包管理器


在安装 Rustup 时, 也会安装 Rust 构建工具和包管理器的最新稳定版,即 Cargo.

Cargo 可以做很多事情:

  • cargo build 可以构建项目
  • cargo run 可以运行项目
  • cargo test 可以测试项目
  • cargo doc 可以为项目构建文档
  • cargo publish 可以将库发布到 crates.io

要检查否安装了 Rust 和 Cargo, 可在终端中运行:

cargo --version


cargo run

alt

cargo check

alt

cargo build --release

alt

cargo install

在Mac上,Cargo可以像brew一样,安装很多Rust写的工具,如安装一款可能比Tmux还要好用的终端工具zellij[1]:

cargo install zellij



为编辑器安装Rust插件:


alt

创建新项目:


cargo new hello-rust

这会生成一个名为 hello-rust 的新目录, 其中包含以下文件:

alt

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

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


进入项目中,执行 cargo run

alt

添加依赖:


在 Rust 中, 通常把包称作 crates

可以在 crates.io[2], 即 Rust 包的仓库中找到所有类别的库

(包和库,可以认为是一回事)


此处使用名为 ferris-says 的库.

Cargo.toml 文件中添加以下信息:

(从 crate 页面上获取)

[dependencies]
ferris-says = "0.2"

alt

(点击这个小图标,就会跳到这个包的官方地址[3])

alt

然后运行:

cargo build

Cargo 就会安装该依赖.

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


编写应用:


main.rs 中:

use std::io::{BufWriter, stdout};
use ferris_says::say;

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


    let mut writer = BufWriter::new(stdout.lock());
    say(message.as_bytes(), width, &mut writer).unwrap();
}

执行 cargo run:

alt

了解更多:


Ferris[4] 是 Rust 社区的 非官方吉祥物.

很多 Rust 程序员自称 Rustaceans, 它与crustacean(甲壳纲动物) 相似

建议用“they”、“them”等代词, 而不用带性别的代词来指代 Ferris

Ferris 与形容词 ferrous(adj. [化学] 亚铁的;铁的,含铁的) 相似, 其的含义与铁有关.

由于 Rust(锈)通常由铁形成, 因此算得上是这个吉祥物名字的有趣来源


alt



参考:

入门:快速配置 Rust 开发环境并编写一个小应用![5]

连微软也在力推:

Take your first steps with Rust[6]

参考资料

[1]

zellij: https://github.com/zellij-org/zellij

[2]

crates.io: https://crates.io/

[3]

官方地址: https://docs.rs/ferris-says/0.2.0/ferris_says/

[4]

Ferris: https://rustacean.net/

[5]

入门:快速配置 Rust 开发环境并编写一个小应用!: https://www.rust-lang.org/zh-CN/learn/get-started

[6]

Take your first steps with Rust: https://docs.microsoft.com/en-us/learn/paths/rust-first-steps/

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G全网通工业三防平板Windows移动电脑

当今科技领域的快速发展为我们的生活带来了许多便利和高效性能。在这个数字化时代,移动设备已成为我们生活的重要组成部分。在这一领域,搭载全新第12代英特尔酷睿Mi5-1235U/i7-1255U处理器的工业三防平板Windows移动电脑无疑是一款引人注目的产品。 这款…

mysql获取附近的店并显示当前距离并由近到远显示

1、创建测试数据 CREATE TABLE store (id int(11) NOT NULL AUTO_INCREMENT,name varchar(50) NOT NULL COMMENT 商家名称,address varchar(200) NOT NULL COMMENT 商家地址,coordinates varchar(50) NOT NULL COMMENT 经纬度,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT…

阿卡西斯 USB4 雷电4 移动硬盘盒做Mac系统盘 体验

硬盘盒(USB4 JHL7440 RTL9210B) 无风扇版本(型号 TBU405 659RMB). 发热大 所以官方出了带风扇版本,我的是不带风扇的. 我是三星990pro组合. 我是把mac系统直接安装到硬盘盒的硬盘里面里面 这是刚买时候的速度 这是当系统重度使用(写代码 大数据环境) 4个月后的硬盘速度测试…

DBeaver设置主题

一、下载包 帮助-》Install new software Eclipse Update Site 勾选一直下一步,直到安装完,会提示重启,重启设置主题即可 二、设置主题 窗口-》首选项-》DevStyle

快速上手一个I2C传感器 | MAX6884

老老实实看DataSheet吧,查找手册有以下几种途径: 1)到芯片厂商官网去下载资料; 2)在芯片器件采购平台搜索,如立创商城、半导小芯; 有原厂或代理翻译的中文手册,或者国产芯片中文手…

leetcode 450. 删除二叉搜索树中的节点

2023.7.14 搜索二叉树相关的题一般都能用递归解决。 本体大致思路是:使用递归的方式,在树中查找目标节点,并根据节点的情况进行删除操作。如果目标节点是叶子节点,直接删除它;如果目标节点只有一个子树,将子…

H3C-Cloud Lab-实验-ACL实验

实验拓扑图: 网段分布情况: 实验需求: 1. 按照图示配置 IP 地址 2. 全网路由互通 3. 在 SERVER1 上配置开启 TELNET 和 FTP 服务 4. 配置 ACL 实现如下效果 1)192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段&#xff0c…

【雕爷学编程】Arduino动手做(162)---OPT101模拟光照传感器模块3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

springboot整合eureka、config搭建注册中心和配置中心

目录 一 、springboot整合eureka实现注册中心 二、springboot整合config实现配置中心 三、从配置中心拉取配置 这篇文章详细介绍怎么通过eureka和config分别搭建一个注册中心和配置中心的服务。 一 、springboot整合eureka实现注册中心 1、创建一个springboot项目&#xff…

编译zlib库给IOS平台用

打开zlib官方网: zlib Home Site 找到github仓库地址: 复制zlib的github地址 执行下面脚本克隆zlib库 git clone https://github.com/madler/zlib.git 克隆成功 zlib自带CMakeLists.txt 所以用CMake-GUI来生成 选择zlib源码目录及输出目录,输入下图的CMAKE参数

Winform实现简历生成器(Excel版)

要点 1.项目中到COM类型库中添加Excel和Word的引用 2.大概思路:创建工作簿对象->将Excel简历框架加载到此工作簿->获取工作表->根据位置填入信息->显示工作簿对象Visible为可见->释放工作簿 GitHub - zzp229/WinForm_CreateExcelResume: 通过界面交…

小红书Java后端一面,被问麻了

今天分享一篇小红书 2 年社招 Java 后端一面的面经,面试的风格是从一个知识一层一层深入问到底层。 从 Java IO,问到 socket 底层。从 Java 内存,问到操作系统内存。所以学习知识的时候,不要只看八股文,还是需要从点到…

【算法 -- LeetCode】(019)删除链表的倒数第 N 个结点

1、题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 输出:[] 示例 3…

excel常用操作备忘

excel操作: 1、快速填充多列公式:选中多列后,按ctrlD填 充。 2、快速删除空行:全选行,按ctrlG,空值项前边打上钩,点确定,针对选中的空行,鼠标右击,点删除&…

20230710~20230714周报

本次周报主要用于巩固和总结在DL-FWI培训中学到的知识。 基础知识 全波形反演(FWI:Full waveform inversion):通过检测到的地震数据直接推测地下结构。 速度模型:由于波在不同介质中的传播速度不同,所以可…

计算联合体大小的测试demo

两个规则&#xff1a; 1.联合体大小必须能容纳联合体中最大的成员变量2.通过规则1 计算出的联合体大小必须是联合体中占内存大小最大的成员类型的整数倍 #include<stdio.h>typedef union {char a[7];int b; }test_union_1;typedef union {char a[6];char b; }test_un…

氢辉能源|[4GW]质子交换膜产线投产发布会暨[3MW]PEM电解槽正式交付

2023年7月12日下午&#xff0c;氢辉能源&#xff08;深圳&#xff09;有限公司&#xff08;以下简称氢辉能源&#xff09;质子交换膜产线投产发布会暨12台50标方3MW电解槽交付仪式在深圳市龙岗区国际低碳城成功举办。 此外&#xff0c;氢辉能源与远景能源、润世华集团、宏洲新能…

005-NULL和NOT NULL

通过desc命令获取数据表结构&#xff0c;当NULL column 字段为YES时&#xff0c;表示列表字段可以为空&#xff08;可以不插入数据&#xff09;&#xff0c;如&#xff1a; 可以设置Null 列表字段不能为空&#xff08;字段后面添加 not null&#xff09;&#xff0c;如&#xf…

StringBuffer类 StringBuilder 类

StringBuffer类 介绍 StringBuffer是一个容器&#xff0c;代表可变的字符序列&#xff0c;可以对字符串内容进行增删。 StringBuffer是可变长度的。 实现了序列化接口&#xff0c;可实现串行化&#xff08;可以将内容保存至文件或者网络传输&#xff09;&#xff1a; Serial…

吴恩达机器学习2022-Jupyter-机器学习实例

1 可选实验: 特征工程和多项式回归 1.1 目标 在这个实验室里: 探索特征工程和多项式回归&#xff0c;它可以让你使用线性回归机制来适应非常复杂&#xff0c;甚至非常非线性的函数。 1.2 工具 您将利用在以前的实验中开发的函数以及matplotlib和NumPy。 2 特征工程与多项式…