Rust 第一天---Rust环境配置

news2024/10/7 16:24:20

学习一门新的语言总是令人兴奋的,新的语法特性,设计理念…当然任何新的事物总是会留有旧事物的影子,这也能帮助我们更快地学习理解.作为2015年才正式发布的“年轻”语言,安全是它最大特性也是受欢迎原因之一.通过所有权系统进行内存管理,避免了其他高级语言因垃圾回收带来的消耗或者是C++那样手动分配管理易造成的内存泄漏.在这个专栏,我将从环境配置到基础语法再到进阶操作一步步记录学习历程,希望对正在学习Rust的伙伴有所帮助.

1. 环境安装配置

工欲善其事,必先利其器,学习任何一门技术最开始必须得配好环境.我的系统是ubuntu,来到Rust官网,打开安装页面Rust 中文安装页面

下载安装rustup工具对Rust进行版本管理

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

下载后运行这个脚本进行安装,安装后应该会自动添加Rust系列工具进环境变量,如果没有的话可以source再试试.对于Windows系统可以去看其他安装方式.

验证一下是否安装成功:

命令行输入rustc --version

image-20230527194212900

2. 编辑器配置

我的常用编辑器是VSCode,在VSCode上配置Rust环境也十分简单.在拓展中下载rust-analyzer插件就可以在VSCode上开始Coding了,如果觉得VSCode没那么智能,也可以尝试JetBrains系列工具.例如在CLion上安装rust插件同样可以实现与Cargo的完美集成,具体如下图所示.

image-20230527223552499

image-20230527223707919

3. Hello World

友人曰,会了“Hello World”等于会了一门语言.虽然半开玩笑,但是确实任何一门语言都会以它作为入门测试demo.上面提到了Cargo工具,Cargo是Rust的构建系统和包管理工具,我们一般可以用cargo new name创建一个名为name的工程,里面包含了src以及.toml文件.

初始化生成新项目后,可以看到src下的main.rs中默认就是“Hello World”,然后命令行运行cargo run就可以看到程序输出.

image-20230527233357333

到这里你已经学废了Rust,本专栏结束(当然不是).稍微解释一下这段简短的代码,熟悉的主函数main,类似于Go的println只不过后面多了一个!,代表着这个其实是Rust的宏而不是函数,具体细节留到进阶部分再展开,然后fn就是类似于python的def或者Go的func代表着函数声明.

说些题外话,本人还是很喜欢这种“大道至简”的设计思想,像Rust,Python,Go这些输出“Hello World”简单一句的语言就很符合我的口味,而有些语言为了输出一句话还得引入库甚至创建一个类真的难以理解!!!

随着项目的复杂程度增加,用Cargo来构建项目成为了更优选择,下面看看Cargo的常用命令.

Cargo常用命令

  • cargo new 创建工程
  • cargo build (--release) 构建工程
  • cargo run (--release) 运行工程
  • cargo fmt 格式化代码
  • cargo check 快速检查代码能否编译
  • cargo clippy 检查代码优化
  • cargo bench 运行benchmark进行基准\性能测试

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

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

相关文章

一百二十六、DBeaver——导入CSV文件(文件中无表字段)到ClickHouse

一、目标:将CSV文件的数据导入到ClickHouse中 备注:CSV文件没有表字段,只有纯粹的数据 二、实施步骤 第一步,右击表名,选择导入数据 第二步,在源类型和格式,选择从CSV文件导入,然…

企业如何建设积分商城?

企业建设一个成功的积分商城系统并不是一件简单的事情,需要注意诸多细节。我们该如何建设积分商城呢?作为一位电商行业十多年的从业者,这里分享一些经验。 一、明确商城建设目标 在建设积分商城之前,我们需要明确建设商城的目标&…

Flutter基础控件

Text:文字 Text("Flutter") Text是最常用也是最基础的,目前学习阶段只用来加载文字数据,更多属性和样式设置请查看源码自己探索。 Button:按钮 ElevatedButton:普通按钮 ElevatedButton(onPressed: () {if (kDebugMode) {print("Elevat…

【Python爬虫与数据分析】进程、线程、协程

目录 一、概述 二、进程的创建 三、线程的创建 四、协程的创建 五、全局变量的共享问题 六、消息队列与互斥锁 七、池化技术 一、概述 进程是系统分配资源的基本单位,线程是CPU调度的基本单位。 一个进程可包含多个线程,一个线程可包含多个协程&…

【C++11】可变参数的函数模板 的 定义 和 应用练习

文章目录 定义常见应用模板参数包展开可变参数模板类可变参数模板函数重载 练习打印任意数量的参数将任意数量的参数合并为一个字符串解包元组(Tuple Unpacking) emplace_back和 push_back 的比较实例 定义 可变参数模板(Variable-length ar…

IT技术相关网站

OSCHINA - 中文开源技术交流社区https://www.oschina.net CSDN - 专业开发者社区https://www.csdn.netSegmentFault 思否 - 中国领先的开发者技术社区https://segmentfault.com 有穹_一个开发者的作品发布平台https://www.youqiong.net牛客网 - 找工作神器|笔试题库|面试经验|实…

完美适配小爱课程表(河南科技学院)

1.前言: 前文请参照我的以前的博客: 青果教务系统适配小爱课程表 本文代码现已开源: 小爱课程表适配gitee小爱课程表适配github 去年的时候试着适配了我们学校的小爱课程表,但是由于水平不够,直接把接口以及参数照搬&a…

redhawk: ir drop如何计算?effective instance resistance和min res path有什么区别?

往期文章链接: redhawk: static analysis redhawk: dynamic analysis redhawk: 什么timing window?

网络安全(黑客)自学!走进黑客的世界

谈起黑客,可能各位都会想到:盗号,其实不尽然;黑客是一群喜爱研究技术的群体,在黑客圈中,一般分为三大圈:娱乐圈 技术圈 职业圈。 娱乐圈:主要是初中生和高中生较多,玩网恋…

但愿世间不纷争,何惜法典卷生尘——北大团队开源法律大模型chatLaw助力法律垂直领域研究发展

今天看到一个比较热门的项目就是来自于北大研究团队刚刚开源的chatLaw法律领域数据开发构建的大模型,官方项目地址在这里,如下所示: 目前已经收货2.1k的star量还是很不错的了。 官方提供的学术报告文章地址在这里,如下所示&#…

API接口设计不合理?个人和公司都有问题

前言 在软件产品或项目开发过程中,往往涉及到大量API接口的开发任务。而一个接口的诞生如果是令人费解的、痛苦折磨的以及有严重后遗症的,究其根本原因还在于设计API接口的时候不够清晰、合理以及缺乏长远考虑。我依据多位同事的问答、实际工作的经验和…

【rsync】远程同步,快速增量备份

rsync远程同步 1.rsync远程同步1.1 rsync概述1.2 下行同步1.3 远程文件同步总结 2. 搭建rsync远程文件同步2.1 搭建rsync远程下行同步2.1.1 配置rsync服务器端(同步源)2.1.2 配置rsync客户机(发起端) 2.2 免交互配置2.3 rysnc认证…

水电站运行数据3D可视化展示方便管理运维

水电站是现代能源体系中的重要组成部分,对于保障国家能源安全和经济发展具有重要的意义。然而,由于水电站的建设和管理涉及到大量的技术和专业知识,许多人对水电站的运行和维护存在许多疑惑和困惑。为了解决这些问题,我们引入了全…

OpenShift 4 - 可观测性之 OpenShift Logging - Loki(附视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 OpenShift Logging Operator 5.7.2 Loki Operator 5.7.2 的环境中验证 文章目录 OpenShift 基于 Loki 的日志架构安装配置基于 Loki 的日志环境安装 OpenShift Logging Operator 和…

工地能耗监测系统

随着全球气候变化的影响日益严重,环保意识逐渐深入人心,绿色建筑和节能减排成为了建筑行业的热门话题。而在建筑工地中,能耗监测成为了一项不可或缺的任务。为了更好地实现能耗监测,工地能耗监测系统应运而生。本文将从以下几个方…

每日一练 | 华为认证真题练习Day72

1、Eth-Trunk两端的负载分担模式可以不一致。 A. 对 B. 错 2、如下图所示的网络,交换机使用机接口和路由器的子接口对,则以下哪个配置可以实现这种需求? A. interface Vlanif10 ip address 10.0.12.1 255.255.255.0 # interface Gigabit…

在Rust中使用torch------day1环境配置Yolov8推理

现在不管什么专业,貌似多多少少都得和深度学习扯上点关系才好写文章(水文章).其中最常用的深度学习框架应该是tensorflow,pytorch这些python的三方库,既然最近在学Rust那就来借机讲讲torch的Rust绑定—tch-rs 其实tch实际上是基于libtorch的封装,而不是pytorch.因此使用起来如…

云原生——什么是云原生数据库?

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 突然间,云原生数据库就火了。根据IDC《2021年下半…

WinForm中使用AnyCAD控件

一、添加DLL程序集 AnyCAD.Foundation.Net.dll AnyCAD.Presentation.Net.dll AnyCAD.Exchange.Net.dll 二、初始化控件 1.首先创建一个窗体 2.在窗体上放置一个Panel用来放置三维控件 3.初始化控件 完整代码如下: using AnyCAD.Presentation; using System; …

Generalized Category Discovery(论文翻译)

Generalized Category Discovery 摘要1.导言2.相关工作3.广义类发现3.1 我们的方法 图1.我们提出一个新的设置:“广义类别发现”及其解决方法。我们的设置可以简洁地描述为:给定一个子集具有类标签的数据集,对数据集中所有未标记的图像进行分…