Rust语言系统编程实战(小北学习笔记——请督促我持续更新)

前言

       进入大学以来(计算机应用技术——大数据方向),就像很多程序猿🐒一样,小北开始每学期学习一种新的编程语言。通过学习另一个编程语言,可以了解很多规范和规则,并得到了一些想法,然后小北在大二的第一学期就发现了Rust。一开始写Rust代码就觉得非常有趣,让人无法挪步,而且经过一份陡峭的学习曲线后,变得越发有趣。所以,总共学习了两个额外的语言(C++Python)后,我坚定地选择了Rust。为什么?下面来告诉友友们具体的原因...

       首先,Rust是一个系统编程语言,会默认地提供内存安全性而无需垃圾回收器,这会影响其运行时行为。尽管如此,Rust仍然是一个相当全能的语言,可以在不同的领域中使用,不论是Web编程、游戏引擎还是Web客户端,都可以使用Rust。另外,对相关作用域和内存分配的传统思维发出挑战,会让小北成为一个可以驾驭任何语言的更好的程序猿🐒,无论是C#Java还是PythonAmazonMicrosoftGoogle等公司的最新动向表明,这个生态系统现在已经是发展到相当稳定的程度,已经足以让企业安心使用,我想这对于未来的Rust专业人员来说是一个很好的信号~~~

       在这篇博客中,小北会继续汇编一些实验以及实战案例,快速在生产环境中使用。小北会尽力覆盖各种不同的应用场景,找到属于自己的理解和概念,以及可以直接用于日常开发工作的解决方案。

第一章  Rust 入门

(工具链和项目结构)

1.1建立环境(老路子,需要科学上网,不建议,小北在后面会补充中文版

       由于编程语言会带来各种工具链、工具、连接器和编译器版本,选择最合适的版本并不容易。另外,Rust在所有主要的操作系统上都可以使用,这又增加了一个变数。

       不过是用rustup(https://rudtuo.rs/),安装Rust会变成一个非常简单的任务。在这个网站上,可以下载一个有用的脚本(或用于Windows的安装程序),它会负责获取和安装所需的组件。这个工具还允许你切换和更新(以及卸载)这些组件。

接下来是小北推荐的一种安装方法:

        要编写代码,还需要一个编辑器。由于Visual Studio Code支持一些Rust特性,因此结合使用Visual Studio Code Rust扩展是一个很好的选择。这也是Microsoft开发的一个开源编辑器,在全世界和Rust社区中都很受欢迎。在这个技巧中,我们将安装以下组件:

  • Visual Studio Code (http://code.visualstudio.com);
  • rustup (https://rustup.rs);安装 Rust - Rust 程序设计语言 (rust-lang.org)icon-default.png?t=N7T8https://www.rust-lang.org/zh-CN/tools/install
  • rustc(及其与编译工具链);什么是rustc?- rustc 手册 English (rustwiki.org.cn)icon-default.png?t=N7T8https://www.rustwiki.org.cn/zh-CN/rustc/
  • cargo:安装 - Cargo 手册 中文版 (rustwiki.org)icon-default.png?t=N7T8https://rustwiki.org/zh-CN/cargo/getting-started/installation.html
  • RLS(Rust Language Server)的简写,用于自动补全;Rust 语言服务器 (booyaa.wtf)icon-default.png?t=N7T8https://rls.booyaa.wtf/
  • Visual Studio CodeRust语言支持.
1.1.1准备工作

        在运行macOS、LinuxWindows的计算机上,只需要一个Web浏览器以及互联网连接。要记住,Windows上的安装与*nix系统(LinuxmacOS)稍有不同,后者使用脚本。

1.1.2技术要求

rustup.rs管理Rust安装

       为了测试是否用rustup成功地安装了Rust工具链,可以在Terminal终端Win+R——cmd)中或者WindowsPowerShell中运行以下命令检查rustccargo是否已经正确安装:

rustc--version
cargo--version 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

茶饮门店本地生活抖音团购运营方案计划书

【干货资料持续更新,以防走丢】 茶饮门店本地生活抖音团购运营方案计划书 部分资料预览 资料部分是网络整理,仅供学习参考。 PPT可编辑80页(完整资料包含以下内容) 目录 抖音本地生活运营方案 1. 账号基础搭建与优化 - 门店账号…

情感识别——情感计算的模型和数据集调查

概述 情感计算指的是识别人类情感、情绪和感觉的工作,已经成为语言学、社会学、心理学、计算机科学和生理学等领域大量研究的主题。 本文将概述情感计算的重要性,涵盖思想、概念和方法。 情感计算是皮卡德于 1997 年提出的一个想法,此后出…

一个 cuda shared library 的通用Makefile

0. 文件结构 device 模版函数放在 library/dev/include/*.cuh 模版的实例化和调用封装在 library/dev/*.cu 针对主机代码调用dev 函数而提供的头文件放在 library/dev/*.h, 也就是*.cu中主机函数的声明; 业务逻辑放置在 lib/src/*.cpp中,调用library/…

OpenWRT磁盘扩容(PVE虚拟机方案)

官方扩容指导文档 PVE给虚拟机磁盘扩容 给虚拟机磁盘扩容,选中OpenWRT的硬盘,随后选择调整大小 输入增量大小,即增加多少磁盘空间给硬盘。这里我选择增加4G 进入OpenWRT控制台界面安装一些linux常用查看磁盘的工具(也可以通过网…

Tensorflow2.0笔记 - BatchNormalization

本笔记记录BN层相关的代码。关于BatchNormalization,可以自行百度,或参考这里: 一文读懂Batch Normalization - 知乎神经网络基础系列: 《深度学习中常见激活函数的原理和特点》《过拟合: dropout原理和在模型中的多种应用》深度…

Web前端 JavaScript笔记7

js的执行机制 js是单线程 同步:前面一个任务执行结束之后,执行后一个 异步:异步任务,引擎放在一边,不进入主线程,而进入任务队列的任务 js通过浏览器解析,浏览器靠引擎解析 回调函数同步任务执行…

17.Nacos与Eureka区别

Nacos会将服务的提供者分为临时实例和非临时实例。默认为临时实例。 临时实例跟eureka一样,会向注册中心报告心跳监测自己是否还活着。如果不正常了nacos会剔除临时实例。(捡来的孩子) 非临时实例,nacos会主动询问服务提供者是否…

【YOLOv8改进[注意力]】YOLOv8添加DAT(Vision Transformer with Deformable Attention)助力涨点

目录 一 DAT 二 YOLOv8添加DAT助力涨点 1 总体修改 2 配置文件 3 训练 其他 一 DAT 官方论文地址:https://openaccess.thecvf.com/content/CVPR2022/papers/Xia_Vision_Transformer_With_Deformable_Attention_CVPR_2022_paper.pdf Transformers最近在各种视…

BBS前后端混合项目--01

总路由 # urls.py """BBS1 URL ConfigurationThe urlpatterns list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/3.2/topics/http/urls/ Examples: Function views1. Add an import: from my_app import views2…

上网行为管理软件有哪些?三款常用上网行为管理软件评测

互联网的普及,企业和个人对于网络安全和信息保护的需求越来越高。为了确保网络环境的安全和稳定,上网行为管理软件应运而生。本文将对三款常用的上网行为管理软件进行评测,分别是域智盾、Splunk Enterprise Security和安企神。 1、域智盾 域…

什么是正向代理和反向代理

正向代理和反向代理是两种不同的代理服务器配置方式,它们在代理的方向和作用上有所不同。 一、正向代理(Forward Proxy) 代表客户端发送请求到其他服务器的代理服务器。客户端将请求发送给正向代理服务器,然后由正向代理服务器代…

Facebook的区块链应用深度分析

去中心化身份验证的意义 在当今数字化社会中,身份验证的重要性不言而喻。对于Facebook这样的大型社交媒体平台来说,确保用户的身份真实性和数据的安全性是至关重要的。传统的中心化身份验证方式存在一定的安全风险和可信性问题,而去中心化身…

Midjourney是什么?Midjourney怎么用?怎么注册Midjourney账号?国内怎么使用Midjourney?多人合租Midjourney拼车

Midjourney是什么 OpenAI发布的ChatGPT4引领了聊天机器人的竞争浪潮,随后谷歌推出了自己的AI聊天机器人Bard,紧接着微软推出了Bing Chat,百度也推出了文心一言,这些聊天机器人的推出,标志着对话式AI技术已经达到了一个…

windows系统下python解释器安装

一. 简介 本文简单学习一下python开发学习中,所使用到的 python解释器的下载安装。后面再学习下载安装python的 IDE开发工具,这里要安装的python的 IDE开发工具为 PyCharm。 二. Windows系统下python解释器与IDE开发工具下载安装 1. python解释器下载…

大型集团企业 怎么实现多区域文件交换?

很多大型集团企业,都会在全国各地,甚至海外,都设立分支机构,还有银行、邮政这类机构,都会在全国各地设立多个支行和网点,所以在日常经营过程中,都会存在多区域文件交换的场景。 大型集团企业在进…

嵌入式Linux八股(三)——计算机基础

三、计算机基础 01.操作系统 01.进程几种状态 02.锁 互斥锁:互斥锁是一种用于线程同步的工具,能够保证同一时刻只有一个线程可以访问共享资源。如果一个线程已经取得了互斥锁,其他尝试获得该锁的线程将会被阻塞,直到第一个线程…

Spring与SpringBoot在配置读取方式上的区别

1. 问题说明 将Springboot项目中自定义的一个扩展工具类移植到Spring框架项目中的时候发现一个问题。在springboot中application.yml中的配置内容可以从Environment中获取,但是在spring中context:placeholder对应的配置文件中的配置却无法从Environment中获取。为了…

Power BI 如何创建页面导航器?(添加目录按钮/切换页面按钮)

Power BI 中页导航是什么? 在Power BI中,页导航(Page Navigation)是指在报告中创建多个页面(页),然后允许用户在这些页面之间进行导航的功能。 如下图所示,页导航的选项和报告中的…

每日两题 / 438. 找到字符串中所有字母异位词 238. 除自身以外数组的乘积(LeetCode热题100)

438. 找到字符串中所有字母异位词 - 力扣&#xff08;LeetCode&#xff09; 记录p串每个字符出现次数 维护与p串等长的滑动窗口&#xff0c;记录其中每个字符的出现次数 每次滑动后将当前次数与p串的次数比较即可 class Solution { public:vector<int> findAnagrams(s…

软件项目经理需要具备这 11 个能力

当前软件开发技术更新换代越来越快&#xff0c;各种项目实施管理思想也日新月异&#xff0c;作为一个软件项目经理&#xff0c;需要具备这 11 种能力&#xff1a; 1. 项目管理能力 了解项目管理的基本原则和方法&#xff0c;包括制定项目计划、资源分配、风险管理、问题解决和…