随笔分类 - Rust
从0到0.99学习Rust语言
摘要:结构体 上一节中提到需要一个更高级的数据结构来帮助我们更好的抽象问题,结构体 struct 恰恰就是这样的复合数据结构,它是由其它数据类型组合而来。 其它语言也有类似的数据结构,不过可能有不同的名称,例如 object、 record 等。 结构体跟之前讲过的元组有些相像:都是由多种类型组合而成。但
阅读全文
摘要:元组是由多种类型组合到一起形成的,因此它是复合类型,元组的长度是固定的,元组中元素的顺序也是固定的。 可以通过以下语法创建一个元组: fn main() { let tup: (i32, f64, u8) = (500, 6.4, 1); } 变量 tup 被绑定了一个元组值 (500, 6.4,
阅读全文
摘要:字符串 在其他语言中,字符串往往是送分题,因为实在是太简单了,例如 "hello, world" 就是字符串章节的几乎全部内容了,但是如果你带着同样的想法来学 Rust,我保证,绝对会栽跟头,因此这一章大家一定要重视,仔细阅读,这里有很多其它 Rust 书籍中没有的内容。 首先来看段很简单的代码:
阅读全文
摘要:引用与借用 上节中提到,如果仅仅支持通过转移所有权的方式获取一个值,那会让程序变得复杂。 Rust 能否像其它编程语言一样,使用某个变量的指针或者引用呢?答案是可以。 Rust 通过 借用(Borrowing) 这个概念来达成上述的目的,获取变量的引用,称之为借用(borrowing)。正如现实生活
阅读全文
摘要:所有权和借用 Rust 之所以能成为万众瞩目的语言,就是因为其内存安全性。在以往,内存安全几乎都是通过 GC 的方式实现,但是 GC 会引来性能、内存占用以及 Stop the world 等问题,在高性能场景和系统编程上是不可接受的,因此 Rust 采用了与(错)众(误)不(之)同(源)的方式:所
阅读全文
摘要:函数 Rust 的函数我们在之前已经见过不少,跟其他语言几乎没有什么区别。因此本章的学习之路将轻松和愉快,骚年们,请珍惜这种愉快,下一章你将体验到不一样的 Rust。 在函数界,有一个函数只闻其名不闻其声,可以止小孩啼!在程序界只有 hello,world! 可以与之媲美,它就是 add 函数: f
阅读全文
摘要:语句和表达式 Rust 的函数体是由一系列语句组成,最后由一个表达式来返回值,例如: fn add_with_extra(x: i32, y: i32) -> i32 { let x = x + 1; // 语句 let y = y + 5; // 语句 x + y // 表达式 } 语句会执行一些
阅读全文
摘要:字符、布尔、单元类型 这三个类型所处的地位比较尴尬,你说它们重要吧,确实出现的身影不是很多,说它们不重要吧,有时候也是不可或缺,而且这三个类型都有一个共同点:简单,因此我们统一放在一起讲。 字符类型(char) 字符(不是字符串),对于没有其它编程经验的新手来说可能不太好理解(没有编程经验敢来学 R
阅读全文
摘要:基本类型 当一门语言不谈类型时,你得小心,这大概率是动态语言(别拍我,我承认是废话)。但是把类型大张旗鼓的用多个章节去讲的,Rust 是其中之一。 基本类型是程序最基础的类型,相对于引用类型(对象类型)更简单,也是最重要的类型 Rust 每个值都有其确切的数据类型,总的来说可以分为两类:基本类型和复
阅读全文
摘要:为何要手动设置变量的可变性? 在其它大多数语言中,要么只支持声明可变的变量,要么只支持声明不可变的变量( 例如函数式语言 ),前者为编程提供了灵活性,后者为编程提供了安全性,而 Rust 比较野,选择了两者我都要,既要灵活性又要安全性。学习 Rust,说明我们的读者都是相当有水平的程序员了,你们应该
阅读全文
摘要:1.追求性能突破 Rust并不是基于C,而是使用LLVM完成自身自举,拥有良好的性能,其次指针安全的特性也是其中一点。 2.基于Rust重构目前的Java项目 目前开发了一款Java版本的金融风控系统,对于数据量巨大,运行遇到瓶颈,所以基于Rust重写项目 3.为何是Rust 一门无 GC 且无需手
阅读全文