你好,我是悦创。
今天我们来讲讲 Rust 语言设计的出发点——所有权,它也是 Rust 的精髓所在。
在第一节课中,我们了解了 Rust 语言里的值有两大类:一类是固定内存长度(简称固定尺寸)的值,比如 i32、u32、由固定尺寸的类型组成的结构体等;另一类是不固定内存长度(简称非固定尺寸)的值,比如字符串 String。这两种值的本质特征完全不一样。而怎么处理这两种值的差异,往往是语言设计的差异性所在。
就拿数字类型来说,C、C++、Java 这些语言就明确定义了数字类型会占用内存中的几个字节,比如 8 位,也就是一个字节,16 位,也就是两个字节。而 JavaScript 这种语言,就完全屏蔽了底层的细节,统一用一个 Number 表示数字。Python 则给出了 int 整数、float 浮点、complex 复数三种数字类型。