Rust 学习笔记(16)-String

参考章节《Rust 程序设计语言》第8.2章 使用字符串储存 UTF-8 编码的文本

在集合章节中讨论字符串的原因是,字符串就是作为字节的集合外加一些方法实现的

在之前的章节我门曾了解过字符串 slice:它们是一些储存在别处的 UTF-8 编码字符串数据的引用。

Rust 的核心语言中只有一种字符串类型:str,它通常以被借用的形式出现,&str。

String是由标准库提供的,而没有写进核心语言部分,它是可增长的可变的有所有权的UTF-8 编码的字符串类型。
你可以把它理解为Java中的字符串包装类,它提供了一系列方便的功能,下面我门就来看看它的大致用法

Rust 学习笔记(15)-Vector

Vector 是《Rust 程序设计语言》第8.1章 使用 Vector 储存列表 而来的结果

我想强调是,书中这一章节主要是在讲集合,集合是一种存储数据的容器,
我把它理解为一种工具,对于这种工具我们不用太过纠结其原理,只要大致了解下它有什么用,怎么用,在适合的时候,能想的起来应该用它就行

Vector 的特点: 只能储存相同类型的值,Vector 可以理解为一个动态数组

Rust 学习笔记(14)-模块系统

模块系统 是《Rust 程序设计语言》第7章的全部内容,啰里八嗦了一整章,人都绕晕了,我相信大家和我一样,哈哈哈

  1. 什么是包(Packages)

简单来说,你的项目就是一个包,每一个包(Package)都有一个Cargo.toml文件

1
2
用 cargo new xxx 创建出来的项目 xxx 就是一个二进制包  
用 cargo new --lib xxx 创建出来的项目 xxx 就是一个类库包
  1. 什么是箱(Crate)

箱(Crate)类似一种"看不见,摸不着"的概念,它是一个模块的树形结构,它形成了库或二进制项目
Crate 会将一个作用域内的相关功能分组到一起,使得该功能可以很方便地在多个项目之间共享。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
编译生成的可执行文件,你就可以把它看成是一个箱(Crate),一个库(lib)项目,你也可以把他看成是一个箱(Crate)

一个包下至少有一个箱(Crate), 可以是类库箱(Crate),也可以是二进制箱(Crate)
一个包下可以包含任意多个二进制箱(Crate),但只能包含 0 或 1个类库箱(Crate)

Rust中的默认箱(crate):
src/main.rs // 二进制箱(binary crate)的根文件,该箱(crate)与包(package)同名
src/lib.rs  // 类库箱(library crate)的根文件 ,该箱(crate)与包(package)同名

多个二进制箱(binary crates):
在src/bin目录下创建.rs文件, 每个文件都是一个二进制箱(Crate)