首页 > 其他分享 >Rust介绍

Rust介绍

时间:2022-12-16 20:46:40浏览次数:62  
标签:Cargo 语言 cargo 介绍 内存 main Rust

什么是Rust?

Rust是一门系统编程语言,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。

Rust在语法上和C++类似 ,但是设计者想要在保证性能的同时提供更好的内存安全。

Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。Rust的设计者们通过在研发Servo网站浏览器布局引擎过程中积累的经验优化了Rust语言和Rust编译器。

Rust编译器是在MIT License 和 Apache License 2.0双重协议声明下的免费开源软件。

为什么要使用Rust语言?

(1)高性能

Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

(2)可靠性

Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

(3)生产力

Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

Rust语言的优缺点

优点:前面提到了一些Rust语言的特点,可以说它的特点就是它的优点。首先必须要提的肯定是安全方面了。

(1)传统的系通编程语言开发过程中,会出现因内存错误导致的bug或者是崩溃。比如空指针、野指针、内存越界、段错误等等。这些错误我们经常提起,平时开发时也会时常遇到,各路大神不断总结经验、开发调试工具,但并不能彻底解决这些问题。Rust语言是可以保证内存安全的系统编程语言,这是它独特的优势。与 C/C++ 语言相比,使用 Rust 语言来进行程序设计可以有助于从源头预防出现诸如空指针,缓存溢出和内存泄漏的内存问题。

(2)在计算机单核性能越来越接近瓶颈的今天,多核并行成了提高软件执行效率的发展趋势。在强大的内存安全特性的支持下,Rust很好的解决了并行条件下的数据竞争问题,保障了线程的安全。

(3)其次就是高性能运行效率极高,与其他语言相比之下,Rust的运行效率较高。

缺点:俗话说的好“人无外人”,一门编程语言也不可能是完美的,肯定会有它的不足或者是局限性。

(1)Rust编译起来比较复杂,对新人不是很友好

(2)库不完善,生态环境较弱

(3)为了做到编译时捕捉大部分错误,给予了 programmer 很少的自由

Rust用来干什么?

(1)Rust编译器可以直接生成目标可执行程序,不需要任何解释程序,可用于传统命令行程序。

(2)Rust 同时具有JavaScript 一般的高效开发语法和 C 语言的执行效率,支持底层平台的开发,可以用于开发嵌入式设备。

(3)Rust 用极低的资源消耗做到安全高效,且具备很强的大规模并发处理能力,十分适合开发普通或极端的服务器程序,可以用于开发网络服务器。

(4)Rust 可以被编译成 WebAssembly,WebAssembly 是一种 JavaScript 的高效替代品。

HelloWorld程序解析

fn main() {
    println!("Hello, world!");
}
  • 定义函数 fn main(){ }
  • main 函数是Rust可执行程序最先执行的代码
  • 打印文本 println!("Hello, world!");
    • println! 是Rust macro(宏)。 println没有!,是个函数
    • Hello, world! 是字符串,是println! 的参数
    • 以 ; 结尾

编译rs文件——>生成二进制文件,如果是Windows还会生成 .pdb文件(包含调试信息)——>运行

编译:rustc main.rs(rustc 只适合简单的Rust程序)

运行:.\main(Windows) ./main(Mac、Linux)

使用Cargo创建项目

什么是Cargo?:Cargo 是 Rust 的构建系统和包管理工具 — 构建代码、下载依赖库、构建这些库…

为什么要使用Cargo?:Cargo适合复杂的Rust程序。

创建项目:cargo new hello_cargo

  — 项目名称为 hello_cargo

  — 会创建一个新的目录 hello_cargo

  • Cargo.toml

  • src目录(放置源代码文件)

  • 初始化一个新的 Git仓库, .gitignore

编译cargo build (-release 为发布使用)

— 生成 Cargo.lock

  

构建并且运行:cargo run

检查代码:cargo check (确保能通过编译,但不生成任何可执行文件)

 

标签:Cargo,语言,cargo,介绍,内存,main,Rust
From: https://www.cnblogs.com/swbna/p/16988246.html

相关文章

  • Masonry介绍与使用实践(快速上手Autolayout)
    前言MagicNumber->autoresizingMask->autolayou以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代window的size固定为(320,480)我们只需......
  • laaS平台架构介绍
     laas基础设施平台分为三层:基础设施资源池、资源管理平台和业务管理平台,如图1所示。基础设施资源池作为实现融合基础设施结构的关键要素,是共享服务器、存储和网络的集合,......
  • OWASP ZAP介绍
    ZedAttackProxyisanopen-sourcesecuritysoftwarewritteninJavaprogramminglanguageandreleasedin2010.Itisusedtoscanwebapplicationsandfindvu......
  • Android Studio工程目录介绍,Ubuntu/Debian 系统切换Java(JVM),修改Java版本,JAVA_HOME
    AndroidStudio工程目录介绍 du1@dePc:~/asProjs/sms$./gradlewcleanERROR:JAVA_HOMEissettoaninvaliddirectory:/home/du1/aset/as/sdkPleasesettheJAVA......
  • 管理型冗余工业交换机产品介绍
    由于工业环境对工业控制网络可靠性能的超高要求,工业以太网的冗余功能应运而生。从快速生成树冗余(RSTP)、环网冗余(RapidRing)到主干冗余(Trunking),都有各自不同的优势和特点。接......
  • 工业级光纤收发器的芯片介绍
    工业级光纤收发器的芯片是整个设备的核心,它和一些硬件设备决定了工业级光纤收发器的性能、寿命等是否满足要求。那么,对于光电介质转换芯片的性能具体有哪些呢?下面飞畅科技就......
  • 8口poe交换机产品介绍
    八口POE交换机(POE31008P)提供了从一个网络节点利用5类以太网线的电源和数据的传输。8+1端口快速以太网端口能用于10/100Mps的连接,其中8个端口可以提供工业标准的IEEE802.3af......
  • 8口PoE网口供电交换机适用环境介绍
    8口POE供电网络交换机“永不烧设备”智能POE交换机,先进的自感知算法只为IEEE802.3af终端设备供电,因而不需要去担心会损坏私有标准的PoE或非PoE设备。智能供电系统,过载保护......
  • #loongarch架构介绍#[一]基础指令
    作者:蒋卫峰李涛前言最近龙芯中科宣布,龙芯2K0500开发板已与OpenHarmony(开源鸿蒙系统)完成了适配验证,LoongArch平台实现初步支持OpenHarmony。本系列文章将对loongarch架构......
  • Spring Boot + vue-element 开发个人博客项目实战教程(二十一、个人介绍、公告管理、标
    ⭐作者简介:码上言⭐代表教程:​​SpringBoot+vue-element开发个人博客项目实战教程​​⭐专栏内容:零基础学Java、个人博客系统文章目录​​一、个人介绍​​​​二、......