Rust语言中文入门教程-堆、栈与Box

 

本文向大家介绍Rust语言中文入门教程-堆、栈与Box。 Heap & Stack 简介 堆和栈是计算机里面最基本的概念,不过如果一直使用高级语言如 Python/Ruby/PHP/Java 等之类的语言的话,可能对堆和栈并不怎么理解,当然这里的栈(Stack)并不是数据结构里面的概念,而是计算机对内存的一个抽 … 阅读全文

Rust语言中文入门教程-宏系统Macro

 

本文向大家介绍Rust语言中文入门教程-宏系统Macro。 Macro 简介 学过 C 语言的人都知道 #define 用来定义宏(macro),而且大学很多老师都告诉你尽量少用宏,因为 C 里面的宏是一个很危险的东西-宏仅仅是简单的文本替换,完全不管语法,类型,非常容易出错。听说过或用过 Lisp 的人觉得宏极其强大 … 阅读全文

Rust语言中文入门教程-输入与输出

 

本文向大家介绍Rust语言中文入门教程-输入与输出。 输入与输出 输入与输出可以说是一个实用程序的最基本要求,没有输入输出的程序是没有什么卵用的。虽然输入输出被函数式编程语言鄙称为副作用,但正是这个副作用才赋予了程序实用性,君不见某著名函数式语言之父称他主导设计的函数式语言"is useless"。这章我们就来谈谈输入 … 阅读全文

Rust语言中文入门教程-Option、Result与错误处理

 

本文向大家介绍Rust语言中文入门教程-Option、Result与错误处理。 错误处理 错误处理是保证程序健壮性的前提,在编程语言中错误处理的方式大致分为两种:抛出异常(exceptions)和作为值返回。 Rust 将错误作为值返回并且提供了原生的优雅的错误处理方案。 熟练掌握错误处理是软件工程中非常重要的环节,让 … 阅读全文

Rust语言中文入门教程-Prelude

 

本文向大家介绍Rust语言中文入门教程-Prelude。 Prelude Rust 的标准库,有一个 prelude 子模块,这里面包含了默认导入(std 库是默认导入的,然后 std 库中的 prelude 下面的东西也是默认导入的)的所有符号。 大体上有下面一些内容: std::marker::{Copy, Sen … 阅读全文

Rust语言中文入门教程-模块module和包crate

 

本文向大家介绍Rust语言中文入门教程-模块module和包crate。 包和模块 包(crate) Rust 中,crate 是一个独立的可编译单元。具体说来,就是一个或一批文件(如果是一批文件,那么有一个文件是这个 crate 的入口)。它编译后,会对应着生成一个可执行文件或一个库。 执行 cargo new fo … 阅读全文

Rust语言中文入门教程-迭代器、适配器、消费者

 

本文向大家介绍Rust语言中文入门教程-迭代器、适配器、消费者。 迭代器 从for循环讲起 我们在控制语句里学习了Rust的for循环表达式,我们知道,Rust的for循环实际上和C语言的循环语句是不同的。这是为什么呢?因为,for循环不过是Rust编译器提供的语法糖! 首先,我们知道Rust有一个for循环能够依次对 … 阅读全文

Rust语言中文入门教程-哈希表 HashMap

 

本文向大家介绍Rust语言中文入门教程-哈希表 HashMap。 哈希表 HashMap 和动态数组Vec一样,哈希表(HashMap)也是Rust内置的集合类型之一,同属std::collections模块下。 它提供了一个平均复杂度为O(1)的查询方法,是实现快速搜索必备的类型之一。 这里呢,主要给大家介绍一下Ha … 阅读全文

Rust语言中文入门教程-动态数组Vec

 

本文向大家介绍Rust语言中文入门教程-动态数组Vec。 动态数组Vec 在第七章我们粗略介绍了一下Vec的用法。实际上,作为Rust中一个非常重要的数据类型,熟练掌握Vec的用法能大大提升我们在Rust世界中的编码能力。 特性及声明方式 和我们之前接触到的Array不同,Vec具有动态的添加和删除元素的能力,并且能够 … 阅读全文

Rust语言中文入门教程-闭包作为参数和返回值

 

本文向大家介绍Rust语言中文入门教程-闭包作为参数和返回值。 闭包作为参数和返回值 闭包作为参数(Taking closures as arguments) 现在我们知道了闭包是 trait,我们已经知道了如何接受和返回闭包;就像任何其它的 trait! 这也意味着我们也可以选择静态或动态分发。首先,让我们写一个获取 … 阅读全文

Rust语言中文入门教程-闭包的实现

 

本文向大家介绍Rust语言中文入门教程-闭包的实现。 闭包的实现 Rust 的闭包实现与其它语言有些许不同。它们实际上是trait的语法糖。在这以前你会希望阅读trait章节,和trait对象。 都理解吗?很好。 理解闭包底层是如何工作的关键有点奇怪:使用()调用函数,像foo(),是一个可重载的运算符。到此,其它的一 … 阅读全文

Rust语言中文入门教程-闭包的语法

 

本文向大家介绍Rust语言中文入门教程-闭包的语法。 闭包的语法 基本形式 闭包看起来像这样: let plus_one = |x: i32| x + 1; assert_eq!(2, plus_one(1)); 我们创建了一个绑定,plus_one,并把它赋予一个闭包。闭包的参数位于管道(|)之中,而闭包体是一个表达 … 阅读全文

Rust语言中文入门教程-闭包

 

本文向大家介绍Rust语言中文入门教程-闭包。 闭包 闭包是什么?先来看看维基百科上的描述: 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是 引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创 … 阅读全文

Rust语言中文入门教程-引用&借用(References&Borrowing)

 

本文向大家介绍Rust语言中文入门教程-引用&借用(References&Borrowing)。 如上所示,Owership让我们改变一个变量的值变得“复杂”,那能否像其他编程语言那样随意改变变量的值呢?答案是有的。 所有权系统允许我们通过“Borrowing”的方式达到这个目的。这个机制非常像其他编程 … 阅读全文

Rust语言中文入门教程-所有权(Ownership)

 

本文向大家介绍Rust语言中文入门教程-所有权(Ownership)。 所有权(Ownership) 在进入正题之前,大家先回忆下一般的编程语言知识。 对于一般的编程语言,通常会先声明一个变量,然后初始化它。 例如在C语言中: int* foo() { int a; // 变量a的作用域开始 a = 100; char … 阅读全文

Rust语言中文入门教程-所有权系统

 

本文向大家介绍Rust语言中文入门教程-所有权系统。 所有权系统 概述 所有权系统(Ownership System)是Rust语言最基本最独特也是最重要的特性之一。 Rust追求的目标是内存安全与运行效率,但是它却没有golang, java, python等语言的内存垃圾回收机制GC。 Rust语言号称,只要编译通 … 阅读全文

Rust语言中文入门教程-泛型

 

本文向大家介绍Rust语言中文入门教程-泛型。 泛型 我们在编程中,通常有这样的需求,为多种类型的数据编写一个功能相同的函数,如两个数的加法,希望这个函数既支持i8、i16、 i32 ....float64等等,甚至自定义类型,在不支持泛型的编程语言中,我们通常要为每一种类型都编写一个函数,而且通常情况下函数名还必须不 … 阅读全文

百度云加速教程-正确配置CND缓存,让网站飞起来

 

本文向大家介绍百度云加速教程-正确配置CND缓存,让网站飞起来。 现在很多站长都在使用百度云加速这个应用,传说不仅可以加快网站的访问速度,还可以增加百度的收录及权重。具体情况并没有考证过。但是使用百度云加速的CDN缓存功能的确可以有效的加速网站。 很多站长在使用百度云加速的时候,只是简单的做了下设置,并没有详细的配置百 … 阅读全文