rust编程语言入门(代码片段)

小乔的博客 小乔的博客     2023-04-03     510

关键词:

Rust 编程语言入门

Rust简介

为什么要用Rust?

  • Rust是一种令人兴奋的新编程语言,它可以让每个人编写可靠且高效的软件。
  • 它可以用来替换C/C++,Rust和他们具有同样的性能,但是很多常见的bug在编译时就可以被消灭。
  • Rust是一种通用的编程语言,但是它更善于以下场景:
    • 需要运行时的速度
    • 需要内存安全
    • 更好的利用多处理器

与其他语言比较

  • C/C++性能非常好,但类型系统和内存都不太安全。
  • Java/C#,拥有GC,能保证内存安全,也有很多优秀特性,但是性能不行。
  • Rust:
    • 安全
    • 无需GC(性能好速度快)
    • 易于维护、调试、代码安全高效

Rust特别擅长的领域

  • 高性能 Web Service (Web API)
  • WebAssembly
  • 命令行工具
  • 网络编程
  • 嵌入式设备
  • 系统编程

Rust与Firefox

  • Rust最初是Mazilla公司的一个研究性项目。Firefox是Rust产品应用的一个重要的例子。
  • Mazilla 一直以来都在用Rust创建一个名为Servo的实验性浏览器引擎,其中的所有内容都是并行执行的。
    • 目前Servo的部分功能已经被集成到Firefox里面了
  • Firefox原来的量子版就包含了Servo的CSS渲染引擎
    • Rust使得Firefox在这方面得到了巨大的性能改进

Rust的用户和案例

  • Google:新操作系统Fuschia,其中Rust代码量大约占30%
  • Amazon:基于Linux开发的直接可以在裸机、虚机上运行容器的操作系统
  • System76、百度、华为、蚂蚁金服...

Rust的优点

  • 性能
  • 安全性
  • 无所畏惧的并发

Rust的缺点

  • 学习曲线高 ”难学“

注意

  • Rust有很多独有的概念,要一步一步学习

Rust 安装

官网:https://www.rust-lang.org/zh-CN/learn/get-started

Windows:按官网指示操作

Mac 安装:

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

更新与卸载Rust

  • 更新Rust
rustup update
  • 卸载Rust
rustup self uninstall

安装验证

  • rustc --version
    • 结构格式:rustc x.y.z(abcdbcdbc yyyy-mm-dd)
    • 会现实最新稳定版:版本号、commit hash、commit日期

本地文档

  • 安装Rust的时候,会在本地安装文档,可离线浏览
  • 运行rustup doc可在浏览器打开本地文档
➜ cargo --version
cargo 1.67.1 (8ecd4f20a 2023-01-10)

~
➜ rustc --version
rustc 1.67.1 (d5a82bbd2 2023-02-07)

~
➜ rustup doc

开发工具

  • Visual Studio Code
    • Rust 插件
  • Pycharm(Intellij Idea 系列)
    • Rust插件

Hello World 例子

编写Rust程序

  • 程序文件后缀名:rs
  • 文件命名规范:hello_world.rs
➜ mkdir rust

~
➜ cd rust

~/rust
➜ mkdir hello_world

~/rust
➜ cd hello_world

~/rust/hello_world
➜ code .

~/rust/hello_world
➜ pwd
/Users/qiaopengjun/rust/hello_world

~/rust/hello_world via 

rust编程语言入门之编写自动化测试(代码片段)

编写自动化测试一、编写和运行测试测试(函数)测试:函数验证非测试代码的功能是否和预期一致测试函数体(通常)执行的3个操作:准备数据/状态运行被测试的代码断言(Assert)结果解剖测试函数测试函数需要使用test属性... 查看详情

rust编程语言入门之rust的面向对象编程特性(代码片段)

...向对象编程特性一、面向对象语言的特性Rust是面向对象编程语言吗?Rust受到多种编程范式的影响,包括面向对象面向对象通常包含以下特性:命名对象、封装、继承对象包含数据和行为“设计模式四人帮”在《设计模型》中给... 查看详情

rust编程语言入门之无畏并发(代码片段)

无畏并发并发Concurrent:程序的不同部分之间独立的执行(并发)Parallel:程序的不同部分同时运行(并行)Rust无畏并发:允许你编写没有细微Bug的代码,并在不引入新Bug的情况下易于重构注意:本文中的”并发“泛指concurrent和p... 查看详情

rust编程语言入门之函数式语言特性:-迭代器和闭包(代码片段)

函数式语言特性:-迭代器和闭包本章内容闭包(closures)迭代器(iterators)优化改善12章的实例项目讨论闭包和迭代器的运行时性能一、闭包(1)-使用闭包创建抽象行为什么是闭包(closure)闭包:可以捕获其所在环境的匿名函数... 查看详情

rust编程语言入门之高级特性(代码片段)

高级特性主要内容不安全Rust高级Trait高级类型高级函数和闭包宏一、不安全Rust匹配命名变量隐藏着第二个语言,它没有强制内存安全保证:UnsafeRust(不安全的Rust)和普通的Rust一样,但提供了额外的“超能力”UnsafeRust存在的原... 查看详情

rust编程语言入门之cargocrates.io(代码片段)

cargo、crates.io本章内容通过releaseprofile来自定义构建在https://crates.io/上发布库通过workspaces组织大工程从https://crates.io/来安装库使用自定义命令扩展cargo一、通过releaseprofile来自定义构建releaseprofile(发布配置)releaseprofile:是预定... 查看详情

tauri入门教程(代码片段)

...一个相对较新的框架,允许您利用基本的Web技术和Rust编程语言快速创建跨平台应用程序。Tauri基于Rust构建 查看详情

rust编程语言入门之最后的项目:多线程web服务器(代码片段)

最后的项目:多线程Web服务器构建多线程Web服务器在socket上监听TCP连接解析少量的HTTP请求创建一个合适的HTTP响应使用线程池改进服务器的吞吐量优雅的停机和清理注意:并不是最佳实践创建项目~/rust➜cargonewhelloCreatedbinary(applica... 查看详情

rust编程语言入门之泛型trait生命周期(代码片段)

泛型、Trait、生命周期一、提取函数消除重复fnmain()letnumber_list=vec![34,50,25,100,65];letmutlargest=number_list[0];fornumberinnumber_listifnumber>largestlargest=number;println!("Thelargestnumberis",largest);重复代码重复代码的危害:容易出错需求变更时需要在... 查看详情

rust入门(代码片段)

Rust语言的介绍、特性什么的都不说了,如有需要,请自行了解。这里我们直接进去正题。一、开发环境mac或linux系统,在命令行安装curlhttps://sh.rustup.rs-sSf|sh安装过程中会询问安装方式,我直接选择的第一种默认方式,第二种是... 查看详情

rust编程语言入门之模式匹配(代码片段)

模式匹配模式模式是Rust中的一种特殊语法,用于匹配复杂和简单类型的结构将模式与匹配表达式和其他构造结合使用,可以更好地控制程序的控制流模式由以下元素(的一些组合)组成:字面值解构的数组、enum、struct和tuple变... 查看详情

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

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

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

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

rust编程语言入门之智能指针(代码片段)

智能指针智能指针(序)相关的概念指针:一个变量在内存中包含的是一个地址(指向其它数据)Rust中最常见的指针就是”引用“引用:使用&借用它指向的值没有其余开销最常见的指针类型智能指针智能指针是这样一些数据... 查看详情

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

...a;Rust安装和管理工具Cargo:Rust包管理工具Rust开发快速入门为什么用Rust避免C++应用内存漏洞多问题Rust没有GC,实时性和高性能堪比C++运行库小,编译二进制文件比Go还要小很多https://blog.oxings.com/article/66 查看详情

rust语言编写wasm简单例子(代码片段)

...最简单的示例,不使用webpack和npm,让你可以快速入门和了解。全局安装wasm-packcargoinstallwasm-pack--no-default-features#忽略OpenSSL实例代码externcratewasm_ 查看详情

rust入门基础单向链表(代码片段)

使用Rust完成单向链表    最近闲下来了,看到一门语言Rust兴起,工资也可观,linux听说有部分也开始用rust写了,但听说学习有曲线,当时本人是不信邪的,学了之后才知道是真的有曲线。。。光是链表... 查看详情

rust入门基础单向链表(代码片段)

使用Rust完成单向链表    最近闲下来了,看到一门语言Rust兴起,工资也可观,linux听说有部分也开始用rust写了,但听说学习有曲线,当时本人是不信邪的,学了之后才知道是真的有曲线。。。光是链表... 查看详情