Rust 条件语句
在 Rust 语言中的条件语句是这种格式的:
实例
fn main() {
let number = 3;
if number < 5 {
println!("条件为 true");
&nb……继续阅读 »
2年前 (2022-07-26) 89浏览 0评论
0个赞
错误处理
Rust 有一套独特的处理异常情况的机制,它并不像其它语言中的 try 机制那样简单。
首先,程序中一般会出现两种错误:可恢复错误和不可恢复错误。
可恢复错误的典型案例是文件访问错误,如果访问一个文件失败,有可能是因为它正在被占用,是正常的,我们可以通过等待来解决。
但还有一种错误是由编程中无法解决的逻辑错误导致的,例如访问数组末尾以外的位置。
大多数编程语言不区分这两种错误,并用 Exception……继续阅读 »
2年前 (2022-07-21) 189浏览 0评论
0个赞
Rust Slice(切片)类型
切片(Slice)是对数据值的部分引用。
切片这个名字往往出现在生物课上,我们做样本玻片的时候要从生物体上获取切片,以供在显微镜上观察。在 Rust 中,切片的意思大致也是这样,只不过它从数据取材引用。
字符串切片
最简单、最常用的数据切片类型是字符串切片(String Slice)。
实例
fn main() {
le……继续阅读 »
2年前 (2022-07-18) 91浏览 0评论
0个赞
Cargo 教程
Cargo 是什么
Cargo 是 Rust 的构建系统和包管理器。
Rust 开发者常用 Cargo 来管理 Rust 工程和获取工程所依赖的库。在上个教程中我们曾使用 cargo new greeting 命令创建了一个名为 greeting 的工程,Cargo 新建了一个名为 greeting 的文件夹并在里面部署了一个 Rust 工程最典型的文件结构。这个 greeting 文件……继续阅读 »
2年前 (2022-07-17) 199浏览 0评论
0个赞
Rust 数据类型
Rust 语言中的基础数据类型有以下几种。
整数型(Integer)
整数型简称整型,按照比特位长度和有无符号分为一下种类:
位长度
有符号
无符号
8-bit
i8
u8
……继续阅读 »
2年前 (2022-06-30) 180浏览 0评论
0个赞
Rust 生命周期
Rust 生命周期机制是与所有权机制同等重要的资源管理机制。
之所以引入这个概念主要是应对复杂类型系统中资源管理的问题。
引用是对待复杂类型时必不可少的机制,毕竟复杂类型的数据不能被处理器轻易地复制和计算。
但引用往往导致极其复杂的资源管理问题,首先认识一下垂悬引用:
实例
{
let r;
{
……继续阅读 »
2年前 (2022-06-26) 154浏览 0评论
0个赞
Rust 枚举类
枚举类在 Rust 中并不像其他编程语言中的概念那样简单,但依然可以十分简单的使用:
实例
#[derive(Debug)]
enum Book {
Papery, Electronic
}
fn main() {
let book = Book::Pa……继续阅读 »
2年前 (2022-06-16) 89浏览 0评论
0个赞
Rust 教程
Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。
Rust 语言由 Mozilla 开发,最早发布于 2014 年 9 月。Rust 的编译器是在 MIT License 和 Apache License 2.0 双重协议声明下的免费开源软件。截至目前( 2020 年 1 月)最新的编译器版本是 1.41……继续阅读 »
2年前 (2022-06-16) 188浏览 0评论
0个赞
Rust 泛型与特性
泛型是一个编程语言不可或缺的机制。
C++ 语言中用”模板”来实现泛型,而 C 语言中没有泛型的机制,这也导致 C 语言难以构建类型复杂的工程。
泛型机制是编程语言用于表达类型抽象的机制,一般用于功能确定、数据类型待定的类,如链表、映射表等。
在函数中定义泛型
这是一个对整型数字选择排序的方法:
实例
fn max(array: &[i3……继续阅读 »
2年前 (2022-06-15) 219浏览 0评论
0个赞
Rust 函数
函数在 Rust 语言中是普遍存在的。
通过之前的章节已经可以了解到 Rust 函数的基本形式:
fn <函数名> ( <参数> ) <函数体>
其中 Rust 函数名称的命名风格是小写字母以下划线分割:
实例
fn main() {
println!("Hello, world!&quo……继续阅读 »
2年前 (2022-06-12) 226浏览 0评论
0个赞
Rust 循环
Rust 除了灵活的条件语句以外,循环结构的设计也十分成熟。这一点作为身经百战的开发者应该能感觉出来。
while 循环
while 循环是最典型的条件语句循环:
实例
fn main() {
let mut number = 1;
while number != 4 {
&nb……继续阅读 »
2年前 (2022-06-12) 286浏览 0评论
0个赞
Rust 集合与字符串
集合(Collection)是数据结构中最普遍的数据存放形式,Rust 标准库中提供了丰富的集合类型帮助开发者处理数据结构的操作。
向量
向量(Vector)是一个存放多值的单数据结构,该结构将相同类型的值线性的存放在内存中。
向量是线性表,在 Rust 中的表示是 Vec<T>。
向量的使用方式类似于列表(List),我们可以通过这种方式创建指定类型的向量:
let vect……继续阅读 »
2年前 (2022-06-10) 112浏览 0评论
0个赞
Rust 并发编程
安全高效的处理并发是 Rust 诞生的目的之一,主要解决的是服务器高负载承受能力。
并发(concurrent)的概念是指程序不同的部分独立执行,这与并行(parallel)的概念容易混淆,并行强调的是”同时执行”。
并发往往会造成并行。
本章讲述与并发相关的编程概念和细节。
线程
线程(thread)是一个程序中独立运行的一个部分。
线程不同于进程(process)的地……继续阅读 »
2年前 (2022-06-07) 215浏览 0评论
0个赞
Rust 环境搭建
Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器。
官方网站公布支持的工具如下(https://www.rust-lang.org/zh-CN/tools):
本教程将使用 Visual Studio Code 作为我们的开发环境(Eclipse 有专用于 Rust 开发的版本,对于初学者也是不错的选择)。
注意:IntelliJ IDEA 安装插件之后难以调试,所以……继续阅读 »
2年前 (2022-06-06) 138浏览 0评论
0个赞
Rust 输出到命令行
在正式学习 Rust 语言以前,我们需要先学会怎样输出一段文字到命令行,这几乎是学习每一门语言之前必备的技能,因为输出到命令行几乎是语言学习阶段程序表达结果的唯一方式。
在之前的 Hello, World 程序中大概已经告诉了大家输出字符串的方式,但并不全面,大家可能很疑惑为什么 println!( “Hello World”) 中的 println 后面还有一……继续阅读 »
3年前 (2022-06-04) 214浏览 0评论
0个赞
Rust 基础语法
变量,基本类型,函数,注释和控制流,这些几乎是每种编程语言都具有的编程概念。
这些基础概念将存在于每个 Rust 程序中,及早学习它们将使你以最快的速度学习 Rust 的使用。
变量
首先必须说明,Rust 是强类型语言,但具有自动判断变量类型的能力。这很容易让人与弱类型语言产生混淆。
如果要声明变量,需要使用 let 关键字。例如:
let a = 123;
只学习过 JavaScript 的……继续阅读 »
3年前 (2022-05-31) 191浏览 0评论
0个赞
Rust 面向对象
面向对象的编程语言通常实现了数据的封装与继承并能基于数据调用方法。
Rust 不是面向对象的编程语言,但这些功能都得以实现。
封装
封装就是对外显示的策略,在 Rust 中可以通过模块的机制来实现最外层的封装,并且每一个 Rust 文件都可以看作一个模块,模块内的元素可以通过 pub 关键字对外明示。这一点在”组织管理”章节详细叙述过。
“类”往往……继续阅读 »
3年前 (2022-05-31) 278浏览 0评论
0个赞
Rust 所有权
计算机程序必须在运行时管理它们所使用的内存资源。
大多数的编程语言都有管理内存的功能:
C/C++ 这样的语言主要通过手动方式管理内存,开发者需要手动的申请和释放内存资源。但为了提高开发效率,只要不影响程序功能的实现,许多开发者没有及时释放内存的习惯。所以手动管理内存的方式常常造成资源浪费。
Java 语言编写的程序在虚拟机(JVM)中运行,JVM 具备自动回收内存资源的功能。但这种方式常常会降低……继续阅读 »
3年前 (2022-05-30) 245浏览 0评论
0个赞
Rust 结构体
Rust 中的结构体(Struct)与元组(Tuple)都可以将若干个类型不一定相同的数据捆绑在一起形成整体,但结构体的每个成员和其本身都有一个名字,这样访问它成员的时候就不用记住下标了。元组常用于非定义的多值传递,而结构体用于规范常用的数据结构。结构体的每个成员叫做”字段”。
结构体定义
这是一个结构体定义:
struct Site {
domain: Stri……继续阅读 »
3年前 (2022-05-27) 160浏览 0评论
0个赞
Rust 组织管理
任何一门编程语言如果不能组织代码都是难以深入的,几乎没有一个软件产品是由一个源文件编译而成的。
本教程到目前为止所有的程序都是在一个文件中编写的,主要是为了方便学习 Rust 语言的语法和概念。
对于一个工程来讲,组织代码是十分重要的。
Rust 中有三个重要的组织概念:箱、包、模块。
箱(Crate)
“箱”是二进制程序文件或者库文件,存在于”包”……继续阅读 »
3年前 (2022-05-26) 123浏览 0评论
0个赞
Rust 文件与 IO
本章介绍 Rust 语言的 I/O 操作。
接收命令行参数
命令行程序是计算机程序最基础的存在形式,几乎所有的操作系统都支持命令行程序并将可视化程序的运行基于命令行机制。
命令行程序必须能够接收来自命令行环境的参数,这些参数往往在一条命令行的命令之后以空格符分隔。
在很多语言中(如 Java 和 C/C++)环境参数是以主函数的参数(常常是一个字符串数组)传递给程序的,但在 Rust 中主……继续阅读 »
3年前 (2022-05-15) 162浏览 0评论
0个赞
Rust 注释
Rust 中的注释方式与其它语言(C、Java)一样,支持两种注释方式:
实例
// 这是第一种注释方式
/* 这是第二种注释方式 */
/*
* 多行注释
* 多行注释
* 多行注释
*/
用于说明文档的注释
在 Rust 中使用 // 可以使其之后到第一个换行符的内容变成注释。
在这种规则下,三个反斜杠 /// 依然是合法的注释开始。所以……继续阅读 »
3年前 (2022-05-15) 165浏览 0评论
0个赞