【Rust】——rust前言与安装rust

🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

🐠离散数学:离散数学_IT闫的博客-CSDN博客

​​​​​​🥽Linux:​​​​Linux_Y小夜的博客-CSDN博客

🚝Rust:Rust_Y小夜的博客-CSDN博客

欢迎收看,希望对大家有用!

目录

🎯前言

🎯在Windows上安装

🎯在Linux或macOS上安装

🎯检查是否正确安装了 Rust

🎯更新与卸载Rust

🎯开发工具

🎯特别注意


🎯前言

        Rust 程序设计语言的本质实际在于 赋能empowerment):无论你现在编写的是何种代码,Rust 能让你在更为广泛的编程领域走得更远,写出自信。

        Rust优点:它消除了旧的陷阱,并提供了伴你一路同行的友好、精良的工具。想要 “深入” 底层控制的程序员可以使用 Rust,无需时刻担心出现崩溃或安全漏洞,也无需因为工具链不靠谱而被迫去了解其中的细节。更妙的是,语言设计本身会自然而然地引导你编写出可靠的代码,并且运行速度和内存使用上都十分高效。

        Rust缺点

  1. 学习曲线陡峭:Rust是一种相对较新的编程语言,具有独特的语法和概念,这使得学习Rust相对较困难。对于那些没有系统编程经验或没有接触过类似的语言的开发人员来说,学习Rust可能需要更多的时间和努力。

  2. 严格的所有权模型:Rust的所有权模型是其最大的特点之一,它确保了内存安全和线程安全。然而,这也意味着在编写Rust代码时,开发人员需要更多地考虑所有权和借用规则,这可能增加了编程的复杂性。

  3. 缺乏成熟的生态系统:与一些其他编程语言相比,Rust的生态系统相对较小。虽然Rust拥有一些非常有用的库和工具,但与其他更成熟的语言相比,Rust的生态系统还不够丰富。这可能导致在某些情况下,开发人员需要自己实现一些常见的功能或依赖于不够成熟的第三方库。

  4. 编译时间较长:Rust是一种静态类型语言,它使用了一些复杂的类型推导和编译优化技术。这使得Rust的编译时间相对较长,特别是对于大型项目来说。这可能会影响开发人员的迭代速度和开发效率。

  5. 异步编程的复杂性:Rust提供了一些强大的异步编程工具,如async/await和Future。然而,与其他一些语言相比,Rust的异步编程模型可能更加复杂和难以理解。这可能对一些开发人员来说是一个挑战,并且可能需要更多的学习和实践才能熟练掌握。

综上所述,尽管Rust具有许多优点,但它也有一些缺点。开发人员在选择使用Rust时应权衡这些因素,并根据项目的需求和团队的技能水平做出决策。

🎯在Windows上安装

进入Rust下载官网(rust官网)

点击Install

然后点击下载64位的exe文件(现阶段大部分都是64位win10以上版本)

运行exe文件

解释:1.继续安装(一般选择1)。2.自定义安装。3.取消安装

🎯在Linux或macOS上安装

        如果你使用 Linux 或 macOS,打开终端并输入如下命令:

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

        此命令下载一个脚本并开始安装 rustup 工具,这会安装最新稳定版 Rust。过程中可能会提示你输入密码。如果安装成功,将会出现如下内容:

Rust is installed now. Great!

        另外,你还需要一个 链接器(linker),这是 Rust 用来将其编译的输出连接到一个文件中的程序。很可能你已经有一个了。如果你遇到了链接器错误,请尝试安装一个 C 编译器,它通常包括一个链接器。C 编译器也很有用,因为一些常见的 Rust 包依赖于 C 代码,因此需要安装一个 C 编译器。

在 macOS 上,你可以通过运行以下命令获得 C 语言编译器:

$ xcode-select --install

Linux 用户通常需要根据发行版(distribution)文档安装 GCC 或 Clang。比如,如果你使用 Ubuntu,可以安装 build-essential 包。

🎯检查是否正确安装了 Rust

打开命令行并输入:

$ rustc --version

你应该可以看到按照以下格式显示的最新稳定版本的版本号、对应的 Commit Hash 和 Commit 日期:

rustc x.y.z (abcabcabc yyyy-mm-dd)

如:

如果看到了这样的信息,就说明 Rust 已经安装成功了!(恭喜入坑!!!)

🎯更新与卸载Rust

通过 rustup 安装了 Rust 之后,更新到最新版本就很简单了,只需要在您对应的命令行中运行如下更新脚本:

$ rustup update

若要卸载 Rust 和 rustup,请在命令行中运行如下卸载脚本:

$ rustup self uninstall

🎯开发工具

  • Visual Studio Code

        - Rust插件

老版本:

新版本:

  • CJion(Intelliji Idea系列)

        -Rust插件

🎯特别注意

安装程序也自带一份文档的本地拷贝,可以离线阅读。运行 rustup doc 在浏览器中查看本地文档。

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

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

相关文章

ACM训练题:Division

题意是给你N&#xff0c;打印出所有相除等于N的五位数&#xff08;包含前导零&#xff09;&#xff0c;可以枚举后五位&#xff0c;计算量是10&#xff01;/5&#xff01;&#xff0c;然后乘N&#xff0c;一起检验10个数是否都出现。 AC代码&#xff1a; #include <iostre…

蓝桥杯省赛无忧 课件111 带权并查集

01 什么是带权并查集&#xff1f; 02 算法原理 03 经典例题分析

uniapp踩坑之项目:简易版不同角色显示不一样的tabbar和页面

1. pages下创建三个不同用户身份的“我的”页面。 显示第几个tabbar&#xff0c;0是管理员 1是财务 2是司机 2. 在uni_modules文件夹创建底部导航cc-myTabbar文件夹&#xff0c;在cc-myTabbar文件夹创建components文件夹&#xff0c;在components文件夹创建cc-myTabbar.vue组件…

五、MyBatis 高级扩展

本章概要 Mapper 批量映射优化插件和分页插件 PageHelper 插件机制和 PageHelper 插件介绍PageHelper 插件使用 逆向工程和 MybatisX 插件 ORM 思维介绍逆向工程逆向工程插件 MyBatisX 使用 5.1 Mapper 批量映射优化 需求 Mapper 配置文件很多时&#xff0c;在全局配置文件…

Spark Shuffle Service简介与测试

一 Dynamic Resource Allocation(动态资源分配) 了解Shuffle Service之前&#xff0c;我们需要先了解和Shuffle Service有关的另一个特性&#xff1a;动态资源分配。 Spark管理资源有两种方式&#xff1a;静态资源分配和动态资源分配。 静态资源分配&#xff1a;spark提交任…

Java并发基础:Phaser全面解析!

内容概要 Phaser是Java中一个灵活的同步工具&#xff0c;其优点在于支持多阶段的任务拆分与同步&#xff0c;并且能够动态地注册与注销参与者&#xff0c;它提供了丰富的等待与推进机制&#xff0c;使得开发者能够更细粒度地控制线程的协调行为&#xff0c;实现复杂的并行任务…

Redis核心技术与实战【学习笔记】 - 25.Redis 支撑秒杀场景的关键技术

简述 秒杀是一个非常经典的活动场景&#xff0c;比如&#xff0c;在双 11、618 等电商促销活动中&#xff0c;都会有秒杀场景。秒杀场景的业务特点是限时限量&#xff0c;业务系统要处理瞬时的大量高并发请求&#xff0c;而 Redis 就经常被用来支撑秒杀活动。 秒杀场景包含多…

2.4日总结

第一题&#xff1a;选数 题解&#xff1a;思路还是很简单的&#xff0c;只需要想清楚dfs里的函数都是什么就可以了&#xff0c;还有一个简单的判断素数的函数&#xff0c;这题真没啥难度&#xff0c;就是属于基础题吧&#xff0c;请看AC代码 #include <stdio.h> #includ…

【c/python】GtkGrid

一、GtkGrid GtkGrid 是 GTK (GIMP Toolkit) 中的一个基础容器构件&#xff08;widget&#xff09;&#xff0c;它可以用来安排其他构件在一个灵活的多行多列的网格中。每个加入网格的构件都可以占据一个或多个行和列。由于 GtkGrid 提供了在二维空间中安排构件的方式&#xf…

YOLOv5独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测

💡💡💡本文独家改进:一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv5网络中的nn.Upsample 💡💡💡在多个数据集下验证能够涨点,尤其在小目标检测领域涨点显著。 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/cate…

多输入多输出 | Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络多输入多输出预测

多输入多输出 | Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络…

2 物理层(一):数据通信的基本概念

目录 目标1 数据通信的基本概念1.1 数据通信的基本概念1、数据2、信息3、信号4、信道5、通信和数据通信6、数据通信网7、码元和码字8、数据分组9、基带传输、频带传输和宽带传输基带传输频带传输宽带传输 1.2 数据通信的主要技术指标1.3 数据通信系统1、数据通信系统基本模型编…

【ARM 嵌入式 编译系列 2.7 -- GCC 编译优化参数详细介绍】

文章目录 GCC 编译优化概述常用优化等级-O1 打开的优化选项-O2 打开的优化选项-O3 打开的优化选项-Os 打开的优化选项优化技术使用优化选项的注意事项GCC 编译优化概述 GCC(GNU Compiler Collection)包含了用于C、C++、Objective-C、Fortran、Ada和Go等语言的编译器。在编译…

能和ai聊天的软件有吗?分享4款智能软件!

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面。如今&#xff0c;我们只需一款软件&#xff0c;就能与AI进行流畅的对话。今天&#xff0c;就让我们一起揭开这些神秘软件的神秘面纱&#xff0c;看看它们如何让我们的沟通变得…

ONLYOFFICE:一站式办公,探索高效办公新境界

写在前面ONLYOFFICE 介绍ONLYOFFICE 有哪些优势ONLYOFFICE 文档 8.0 发布如何体验 ONLYOFFICEONLYOFFICE 文档部分页面截图 写在前面 在当今这样一个数字化时代&#xff0c;办公软件已经成为我们日常工作中不可或缺的一部分&#xff0c;熟练使用 Office、WPS、腾讯文档、金山文…

搜大学英语题,用哪个软件好?哪款大学搜题工具好用? #媒体#职场发展#媒体

大学生除了学习专业知识外&#xff0c;还应该关注和学习一些软技能&#xff0c;如沟通能力、团队合作和领导力等&#xff0c;以提升自己的综合素质。 1.好大学在线 好大学在线是上海交通大学拥有的中国顶尖慕课平台。 依托该平台&#xff0c;上海交通大学与百度及金智教育实…

机器学习 | 基于网格搜索的SVM超参数调节

机器学习模型被定义为一个数学模型&#xff0c;其中包含许多需要从数据中学习的参数。然而&#xff0c;有一些参数&#xff0c;称为超参数&#xff0c;这些参数不能直接学习。它们通常是由人类在实际训练开始前根据直觉或经验和试验选择的。这些参数通过提高模型的性能&#xf…

网络协议梳理

1 引言 在计算机网络中要做到有条不紊地交换数据&#xff0c;就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这里所说的同步不是狭义的&#xff08;即同频或同频同相&#xff09;而是广义的&#xff0c;即在一定的条件下应当发生什…

每日一题——LeetCode1403.非递增顺序的最小子序列

方法一 个人方法&#xff1a; 按题目要求&#xff0c;尽可能先取出nums里最大的值&#xff0c;这样才能满足子序列尽可能短且元素之和最大 var minSubsequence function(nums) {nums.sort((a,b)>a-b)let sum1nums.reduce((a,b)>ab,0),sum20,res[]while(sum1>sum2){…