您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Rust

开始用Rust编写代码!

时间:2023-06-20 14:15:10  来源:51CTO  作者:

作者 | Ukeje

译者 | 布加迪

审校 | 重楼

 

Rust是一种强大的语言,但从哪里开始入手呢?如果您习惯使用另一种语言,就应该知道Rust如何处理这些熟悉的概念。

1、梳理Rust

 

自2015年发布以来,Rust已成为开发人员最喜欢的编程语言之一。Rust提供了出色的性能和安全特性,具有直观简洁的语法,因而成为理想的编程语言。

Rust适合构建各种程序,包括Web应用程序、命令行工具和网络服务。Rust包含您期望从现代编程语言获得的许多特性,比如并发性和类型推断等。

 

Rust是一种跨平台编程语言,可以在大多数操作系统上运行。若要开始使用Rust,请访问官方Rust网站(https://www.rust-lang.org/tools/install),并为你的操作系统安装首选版本。

 

一旦安装了Rust,你就可以开始在扩展名为.rs的Rust文件中编写程序。Rust用途广泛,易于上手。如果您之前有过编程经验,会发现它很简单。

2、Rust中的变量和常量

 

Rust有很强的表达力,并且有多种声明变量的方法。您可以使用let关键字来声明变量。

 

下面是在Rust中声明变量的方法:

 

let a: String;
let b: i32;
let c: () = ();

 

变量a和b分别是字符串和整数。变量c是一个Rust单元类型,充当函数和表达式的占位符。

 

在可选的数据类型声明之后,您可以使用等号符号声明和初始化变量。

 

fn mAIn(){
         let age: String = String::from("five years old");
         let age = 5; // equivalent to let age: i32 = 5;
         println!("{}", age);
}

 

程序在使用println!宏打印输出之前声明两个age变量。第一个age变量指定数据类型,第二个变量不指定。

 

在声明变量时不必指定其数据类型。Rust编译器在编译时根据值的数据类型推断类型。

 

 

图片

 

 

在Rust中,您还可以用const关键字声明常量,就像声明变量一样:

 

const age: &str = "five years old";

 

您无法修改声明为常量的变量的值。

3、注释Rust程序

 

Rust提供了单行和块注释的功能。针对单行注释,您可以使用双正斜杠(//):

fn main() {
         // This is a line comment
         let x = 5; // This comment explains the purpose of the `x` variable
}

 

针对多行注释(块注释),使用正斜杠后跟星号(/*),并用星号后跟正斜杠(*/)结束块:

 

fn main() {
         /*
           This is a block comment that spans multiple lines.
           It is often used to describe a larger block of code.
         */
         let x = 5;
}

 

这样,注释就可以简洁明了。

4、Rust中的数组

 

数组是数据类型相同的元素的固定大小的集合。默认情况下,Rust在堆栈上分配数组。

 

下面是在Rust中声明数组的方法:

 

fn main() {
         let numbers = [1, 2, 3, 4, 5];
}

 

numbers数组含有5个项。您可以使用索引访问数组中某个位置的值:

 

fn main() {
         let numbers = [1, 2, 3, 4, 5];
         let x = numbers[3];
         println!("{}", x)
}

 

main函数输出访问数组第四个元素的变量x。

 

 

图片

 

5、Rust中的向量

 

Rust提供向量来掩盖数组的限制。向量是动态大小的,它们可以根据需要来扩大和缩小。

 

下面是在Rust中声明向量的方法:

 

fn main() {
         let my_vec: Vec<i32> = vec![1, 2, 3, 4, 5];
         let x = my_vec[3];
         println!("{}", x)
}

 

my_vec向量是一个32位整数向量。变量x访问向量的第四个元素,main函数将值输出到控制台。

6、Rust的条件语句

 

条件语句是Rust用于程序决策的控制结构之一。您可以使用if和else关键字来处理程序中的决策。

 

下面这个if语句根据两个整数的相等性向控制台输出一个字符串。

 

fn main() {
         let a: i32 = 12;
         if a == 12 {
             println!("a equals twelve");
         }
}

 

由于变量等于12,main函数使用println!宏打印输出字符串。可以使用else关键字来处理if语言评估为false的情况:

 

fn main() {
         let a: i32 = 12;
         if a == 123 {
         println!("a equals twelve");
         } else {
         println!("a does not equal twelve");
         }
}

 

在这个例子中,else语句之所以运行,是由于a的值不等于123。

针对复杂的情形,您可以使用match关键字来声明匹配语句:

 

fn main() {
         let age: i32 = 7;
         match age {
             1 => println!("one"),
             2 => println!("two"),
             3 => println!("three"),
             _ => println!("zero"),
         }
}

 

main函数将age变量与match语句中的case进行匹配,并执行与该值匹配的表达式。下划线(_)是在值匹配时运行的默认语句。

7、Rust中的循环

 

Rust为重复的任务提供循环。Rust有三种主要类型的循环:loop循环、while循环和for循环。

 

loop关键字创建一个无限循环,该循环一直运行,直至遇到break关键字:

 

fn main() {
         loop {
         println!("printed repeatedly until break statement is encountered.");
         break;
         }
}

 

当您想要重复一段代码时,只要条件的评估结果为true,while循环就很方便:

fn main() {
         let mut count = 0;
         while count < 5 {
               println!("The count is {}", count);
               count += 1;
         }
}

 

for循环适用于迭代一组项,比如数组:

 

fn main() {
         let numbers = [1, 2, 3, 4, 5];
         for item in numbers.iter() {
             println!("The current item is {}", item);        
             }
}

 

for循环遍历number数组,并将每一项打印输出到控制台。

8、声明和调用Rust函数

 

使用fn关键字声明一个Rust函数,后跟函数名、参数列表和返回类型(如果有的话)。

 

下面是如何声明一个带参数和返回类型的函数:

 

fn add(a: i32, b: i32) -> i32 {
    return a + b;
}

 

add函数接受两个32位整数,并返回一个32位整数,即两个参数的和。要从您代码的其他地方调用函数,只需指定名称和参数(如果有的话):

 

fn main() {
         let result = add(2, 3);
         println!("2 + 3 = {}", result);
}

 

result变量保存调用add函数的结果。main函数使用println!宏将结果打印输出到控制台。

9、Rust中的结构体

 

Rust提供了用于定义将相关值分组的自定义数据类型的结构体。结构体是创建具有特定属性的对象的蓝图。

 

下面显示了如何声明一个结构体:

 

struct Person {
       name: String,
       age: u32,
       is_male: bool,
}

 

Person结构体有三个字段:字符串、无符号32位整数和布尔值。在定义了一个结构体之后,您可以在程序的其他部分创建其实例:

 

fn main() {
         let person1 = Person {
             name: String::from("Candace Flynn"),
             age: 16,
             is_male: false,
         };
}

 

person1变量是Person结构体的一个实例。在实例化时,您可以为结构体字段赋值。您可以随心所欲地创建一个结构体的多个实例。

10、如何在Rust中实现OOP?

 

Rust很灵活,您可以在Rust中使用结构体等内置数据结构来实现OOP概念。

可以使用结构体来替代类。借助Rust的结构体,可以为类型定义蓝图,并使用Rust在结构体方面提供的功能实现不同的OOP概念。

 

原文链接:https://www.makeuseof.com/rust-everything-know-start/



Tags:Rust   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Rust 标准库 1.77.2 发布,修复高危漏洞
IT之家 4 月 10 日消息,Rust 的优势之一就是安全,但这并不代表该编程语言就没有漏洞。安全专家近日发现了追踪编号为 CVE-2024-24576 的漏洞,攻击者利用 Rust 标准库中的一个安...【详细内容】
2024-04-10  Search: Rust  点击:(4)  评论:(0)  加入收藏
在Rust中使用Serde的详细指南
在处理HTTP请求时,我们总是需要在一种数据结构(可以是enum、struct等)和一种可以存储或传输并稍后重建的格式(例如JSON)之间来回转换。Serde是一个库(crate),用于高效、通用地...【详细内容】
2024-03-26  Search: Rust  点击:(17)  评论:(0)  加入收藏
Rust 写脚手架,Clap你应该知道的二三事
有感而发最近,在和前端小伙伴聊天发现,在2024年,她们都有打算入局Rust学习的行列。毕竟前端现在太卷了,框架算是走到「穷途末路」了,无非就是在原有基础上修修补补。所有他们想在...【详细内容】
2024-03-11  Search: Rust  点击:(20)  评论:(0)  加入收藏
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
Vue 团队已正式开源Rolldown &mdash;&mdash; 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口...【详细内容】
2024-03-09  Search: Rust  点击:(11)  评论:(0)  加入收藏
Rust中的数据可视化指南
可视化是数据分析和解释的一个关键方面。虽然Rust主要以其性能和安全特性而闻名,但它也为数据可视化提供了强大的工具。在这个全面的指南中,我们将深入研究Rust中的数据可视化...【详细内容】
2024-03-07  Search: Rust  点击:(31)  评论:(0)  加入收藏
如何在Rust中操作JSON,你学会了吗?
sonic-rs ​还具有一些额外的方法来进行惰性评估和提高速度。例如,如果我们想要一个 JSON​ 字符串文字,我们可以在反序列化时使用 LazyValue​ 类型将其转换为一个仍然带有斜...【详细内容】
2024-02-27  Search: Rust  点击:(47)  评论:(0)  加入收藏
记一次Rust内存泄漏排查之旅
在某次持续压测过程中,我们发现 GreptimeDB 的 Frontend 节点内存即使在请求量平稳的阶段也在持续上涨,直至被 OOM kill。我们判断 Frontend 应该是有内存泄漏了,于是开启了排...【详细内容】
2024-02-27  Search: Rust  点击:(12)  评论:(0)  加入收藏
Rust 最受欢迎的这些库
今天分享主题是,关于一些值得注意的 Rust 库,这些库可以根据它们的功能和在编码中的受欢迎程度进行选择。什么是 Rust 库?在 Rust 中,常被称为 “crate” 的库,是一个打包的单元...【详细内容】
2024-02-19  Search: Rust  点击:(50)  评论:(0)  加入收藏
异步Rust:构建实时消息代理服务器
在本文中,我们将深入研究使用Rust构建实时消息代理服务器,展示其强大的并发特性。我们将使用Warp作为web服务器,并使用Tokio来管理异步任务。此外,我们将创建一个WebSocket客户...【详细内容】
2024-02-01  Search: Rust  点击:(58)  评论:(0)  加入收藏
在 Rust 编程中使用泛型
本文的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。1.摘要Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以...【详细内容】
2024-01-09  Search: Rust  点击:(89)  评论:(0)  加入收藏
▌简易百科推荐
Rust 标准库 1.77.2 发布,修复高危漏洞
IT之家 4 月 10 日消息,Rust 的优势之一就是安全,但这并不代表该编程语言就没有漏洞。安全专家近日发现了追踪编号为 CVE-2024-24576 的漏洞,攻击者利用 Rust 标准库中的一个安...【详细内容】
2024-04-10    IT之家  Tags:Rust   点击:(4)  评论:(0)  加入收藏
在Rust中使用Serde的详细指南
在处理HTTP请求时,我们总是需要在一种数据结构(可以是enum、struct等)和一种可以存储或传输并稍后重建的格式(例如JSON)之间来回转换。Serde是一个库(crate),用于高效、通用地...【详细内容】
2024-03-26  coding到灯火阑珊  微信公众号  Tags:Rust   点击:(17)  评论:(0)  加入收藏
Rust 写脚手架,Clap你应该知道的二三事
有感而发最近,在和前端小伙伴聊天发现,在2024年,她们都有打算入局Rust学习的行列。毕竟前端现在太卷了,框架算是走到「穷途末路」了,无非就是在原有基础上修修补补。所有他们想在...【详细内容】
2024-03-11  前端柒八九  微信公众号  Tags:Rust   点击:(20)  评论:(0)  加入收藏
Rust中的数据可视化指南
可视化是数据分析和解释的一个关键方面。虽然Rust主要以其性能和安全特性而闻名,但它也为数据可视化提供了强大的工具。在这个全面的指南中,我们将深入研究Rust中的数据可视化...【详细内容】
2024-03-07  coding到灯火阑珊  微信公众号  Tags:Rust   点击:(31)  评论:(0)  加入收藏
如何在Rust中操作JSON,你学会了吗?
sonic-rs ​还具有一些额外的方法来进行惰性评估和提高速度。例如,如果我们想要一个 JSON​ 字符串文字,我们可以在反序列化时使用 LazyValue​ 类型将其转换为一个仍然带有斜...【详细内容】
2024-02-27  前端柒八九  微信公众号  Tags:Rust   点击:(47)  评论:(0)  加入收藏
记一次Rust内存泄漏排查之旅
在某次持续压测过程中,我们发现 GreptimeDB 的 Frontend 节点内存即使在请求量平稳的阶段也在持续上涨,直至被 OOM kill。我们判断 Frontend 应该是有内存泄漏了,于是开启了排...【详细内容】
2024-02-27  OSC开源社区    Tags:Rust   点击:(12)  评论:(0)  加入收藏
Rust 最受欢迎的这些库
今天分享主题是,关于一些值得注意的 Rust 库,这些库可以根据它们的功能和在编码中的受欢迎程度进行选择。什么是 Rust 库?在 Rust 中,常被称为 “crate” 的库,是一个打包的单元...【详细内容】
2024-02-19  码农渔夫  微信公众号  Tags:Rust   点击:(50)  评论:(0)  加入收藏
异步Rust:构建实时消息代理服务器
在本文中,我们将深入研究使用Rust构建实时消息代理服务器,展示其强大的并发特性。我们将使用Warp作为web服务器,并使用Tokio来管理异步任务。此外,我们将创建一个WebSocket客户...【详细内容】
2024-02-01      Tags:Rust   点击:(58)  评论:(0)  加入收藏
在 Rust 编程中使用泛型
本文的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。1.摘要Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以...【详细内容】
2024-01-09  二进制空间安全  微信公众号  Tags:Rust   点击:(89)  评论:(0)  加入收藏
什么是Rust语言 ,特点是什么,跟其它语言对比有什么优势
什么是RustRust是一种系统编程语言,旨在提供高性能和安全性。它是由Mozilla和其开发社区创建的开源语言,设计目标是在C++的应用场景中提供一种现代、可靠和高效的选择。Rust的...【详细内容】
2024-01-09    简易百科  Tags:Rust语言   点击:(206)  评论:(0)  加入收藏
站内最新
站内热门
站内头条