rust为什么我建议你学一下rust|rust初探(代码片段)

小雨青年 小雨青年     2022-12-02     520

关键词:

文章目录

一、Rust 的特点

Rust 是一种多范式、通用编程语言,旨在提高性能和安全性,尤其是安全并发性。 Rust 在语法上类似于 C++,但可以通过使用借用检查器来验证引用来保证内存安全。 Rust 在没有垃圾收集的情况下实现了内存安全,并且引用计数是可选的。 Rust 被称为系统编程语言,除了函数式编程等高级特性外,它还提供低级内存管理机制。

Rust 首次出现于 2010 年,由 Mozilla Research 的 Graydon Hoare 设计,Dave Herman、Brendan Eich 等人也做出了贡献。 设计人员在编写 Servo 实验性浏览器引擎和 Rust 编译器时改进了语言。 Rust 的主要影响包括 C++、OCaml、Haskell 和 Erlang。 它在行业中获得了越来越多的使用和投资,包括亚马逊、微软、Facebook、Discord 和 Dropbox。

Rust 语言旨在以简单的方式开发可靠且健壮的系统。 Rust 可用于修复高级软件以及硬件特定程序。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VbrHVu2n-1658198463175)(https://cdn.metalyoung.com/2022/07/1658198391278.svg)]

二、快速了解

1. 安装环境

MacOS下安装 Rust 很简单。

curl https://sh.rustup.rs -sSf | sh

info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.

Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:

  /Users/xiaoyu/.rustup

This can be modified with the RUSTUP_HOME environment variable.

The Cargo home directory is located at:

  /Users/xiaoyu/.cargo

This can be modified with the CARGO_HOME environment variable.

The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:

  /Users/xiaoyu/.cargo/bin

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /Users/xiaoyu/.profile
  /Users/xiaoyu/.bash_profile
  /Users/xiaoyu/.zshenv

You can uninstall at any time with rustup self uninstall and
these changes will be reverted.

Current installation options:


   default host triple: x86_64-apple-darwin
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1

以上我们可以得到的是:

  • 官方的包管理器是 Cargo
  • rust 的安装路径是 /Users/xiaoyu/.cargo/bin
  • 脚本会自动把环境变量添加到配置文件中

经过了一段时间的下载,最后安装完成。

  stable-x86_64-apple-darwin installed - rustc 1.62.0 (a8314ef7d 2022-06-27)


Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).

To configure your current shell, run:
source "$HOME/.cargo/env"

2. 查看版本

 ~ % rustc --version
rustc 1.62.0 (a8314ef7d 2022-06-27)

目前 rust 的版本为 1.62.0

3. Hello World

新建一个文件名为HelloWorld.rs,内容如下

fn main()
   println!("Hello World !!");

main 函数是整个应用程序的入口,fn 这种方法的写法甚至比 go 的 func更短。

执行rustc HelloWorld.rs,对程序进行编译。在 MacOS的环境下,我们可以得到一个HelloWorld的可执行文件。

执行这个文件,我们可以看到输出结果。

rust % ./HelloWorld 

Hello World !!

所以,Rust 应用程序的是需要编译的,和 Java 、Go 是一样的,区别于 Python 、PHP 。

三、总结

Rust 需要编译执行,特点是安全、快速、支持并发。

Rust 中的函数原型是啥?

...现这部分描述令人困惑(强调我的):inline属性向编译器建议它应该在调用者中放置属性 查看详情

使用 Rust 语言编译问题:从“Hello World”开始

...试一下。到目前为止一切顺利。安装Rust简单易行。使用建议的方法,设置环境变量并 查看详情

在linux新版内核中的rust初探,原来是这样的!

整理|苏宓出品|CSDN(ID:CSDNnews)近来,Rust爆火。不久之前,53岁的LinusTorvalds在出席Linux基金会主办的2022开源峰会时表示,下一个版本的Linux内核主线,可能就会合并Rust语言提交的PR分支。然而,在... 查看详情

rust的“并发安全”设计

...t》昨天发了一篇说异步IO和轻量级线程的文章,有人问我为什么不在后面补充一下rust的并发模型。其实rust并不存在一个独特的并发模型,但它从语言层面上提供了一整套机制来保证并发的安全,借助这套机制,你可以安全的实... 查看详情

为啥这个 Rust 枚举不小?

...这个Rust枚举不小?【英文标题】:WhyisthisRustenumnotsmaller?为什么这个Rust枚举不小?【发布时间】:2019-12-1102:19:11【问题描述】:考虑一下这个愚蠢的枚举:enumNumberRationalnumerator:i32,denominator:std::num::NonZeroU32,,FixedPointwhole:i16,fractional... 查看详情

如何在 Rust 中进行实时编程?

...了两个可能的问题:1)如何避免调用Rust的GC?我已经看到建议我可以通过简单地避免托管指针和非实时安全库(例如Rust的标准库)来做到这一点——这足以保证我的实时任务永远不会调用GC吗?2)如何将我的实 查看详情

为啥我可以在嵌套函数 (Rust) 中有多个 &mut 引用?

...标题】:WhyamIallowedtohavemultiple&mutrefsinnestedfunctions(Rust)?为什么我可以在嵌套函数(Rust)中有多个&mut引用?【发布时间】:2022-01-1615:57:17【问题描述】:我是rust新手,想知道为什么下面的代码不会导致:不能一次多次将val借用... 查看详情

HOWTO:使用 gtk (rust-gnome) 回调的惯用 Rust

...异状态。我有一个可行但不优雅的解决方案,所以我想问一下是否有是一种更 查看详情

Rust 中的单链表

...尝试自学一些Rust,并想通过实现一个简单的链表来练习一下。我从Rust库的链表中获得了一些灵感,并尝试复制我已经理解的部分。我还决定暂时将其设为单链接。structNode<T>element:T,next:Option<Box<Node<T>& 查看详情

Rust 所有权问题

...结构,我使用miocrate异步读取套接字。我明白错误告诉我什么,但我不知道如何解决它 查看详情

rust开发快速入门(代码片段)

为什么用Rust避免C++应用内存漏洞多问题Rust没有GC,实时性和高性能堪比C++运行库小,编译二进制文件比Go还要小很多Rust官方网站RustProgrammingLanguageLinux安装Rust系统环境:UBuntu18安装Rustsudoaptinstallrustc查看rust... 查看详情

如何中止 Rust 进程?

...的事情。有std::intrinsics::abort()和core::intrinsics::abort()(有什么区别?),但它们都不稳定。如何使用稳定的Rust中止()?【问题 查看详情

rust我该用什么软件开发rust|常用支持rust的编辑器推荐

目录一、前言二、编辑器插件1.VSCode2.SublimeText3.IntelliJIDEA(推荐)4.VIM三、以GoLand为例安装rust插件演示1.插件市场搜索rust2.创建项目并Hello,world!四、总结一、前言简单来说,Rust用记事本也能写,但是好工具能大幅... 查看详情

为啥 Rust 无法在 Windows 上链接?

...在Windows上链接?【英文标题】:WhydoesRustfailtolinkonWindows?为什么Rust无法在Windows上链接?【发布时间】:2014-10-2205:35:28【问题描述】:我在我的机器上下载并安装了Rust和Cargonightlies,并使用Cargo生成了一个新的二进制项目:Cifram@Va... 查看详情

使用嵌入式 rust 设置寄存器

...,我目前正在阅读有关寄存器的信息。现在,这本书确实建议我使用STM32F303VCdiscovery来避免问题,但我找不到,因此我得到了NucleoF303REinstead。货物的目标和材料保持不变。所以 查看详情

rust学习--变量(代码片段)

...x=6;这样的话会通不过编译,这就是变量不可变的特性。为什么要这么做呢?说一下我的理解。这个特性可以规避掉很多问题,比如一些常见的低级逻辑错误。更重要的是,这个特性会影响到多线程并发编程。变量不再可变,就... 查看详情

#yyds干货盘点#为什么要学习rust?

1.Rust相关概念与简介Rust是一种令人兴奋的新兴编程语言,它可以让每个人编写可靠且高效的软件。Rust可以用来替换C/C++,Rust和他们具有相同的性能,但是很多常见的bug在编译时就可以被消灭。Rust是一种通用的编程语言,但是它... 查看详情

使用数组参数从 C 调用 Rust 方法

...码。设备通过UART打印,所以我可以看到我的调用结果是什么。以下C和Rust代码按预期工作(我省略了许多使其编译所需的样板Rust代码)。C:uint8_tinput[]=1,2,3;uint8_ 查看详情