5 分钟速读之 Rust 权威指南(二)
数据类型
这一节来介绍 rust 的数据类型,在 JS 中有 string、number、boolean、symbol、null、undefined、object,拿 number 类型来说,rust 中包含多种数字类型。另外,如果用过 TS 的话可能会听说过 tuple 元组类型,rust 中也存在元组。
标量类型(scalar)标量就是基础类型,包含整数、浮点数、布尔、字符串
整数,包含 i 和 u 系列
对于 i8 来讲,范围是-2 的 7 次方→2 的七次方减 1,也就是-128→127
对于 u8 来讲,范围是 2 的 8 次方减 1,也就是-128→127
对于 in 来讲,范围就是-2 的(n-1)次方→2 的(n-1)次方减 1
对于 un 来讲,范围就是 2 的 n 次方减 1
isize 和 usize:它们的长度取决于程序运行的目标平台。在 64 位架构上,它们就是 64 位的,而在 32 位架构上,它们就是 32 位的。
字面量声明
新手入门的话,我们一般使用 i32 就够了,它的运算速度大部分情况也是速度最快的一个。
浮点数 f 系列
f32,占用 32 位长度
f64,占用 64 长度
布尔 bool
与 JS 一样,只有两个布尔值
字符 char
单个字符(char)使用单引号定义
rust 中的 char 类型占 4 字节,是一个 Unicode 标量值,这也意味着它可以表示比 ASCII 多得多的字符内容。
拼音字母、中文、日文、韩文、零长度空白字符,甚至是 emoji 表情都可以作为一个有效的 char 类型值。
实际上,Unicode 标量可以描述从 U+0000 到 U+D7FF 以及从 U+E000 到 U+10FFFF 范围内的所有值。
由于 Unicode 中没有“字符”的概念,所以你现在从直觉上认为的“字符”也许与 rust 中的概念并不相符。
多个字符可以组成一个字符串(str)
复合类型 compound
数组 array
用方括号创建数组,成员类型必须一致,数组长度不可变,动态长度数组可以用 vector 类型(后面章节会有介绍)
元组 tuple
用圆括号来声明元组,如果不指定类型,编译器会自动推断
好奇的同学可能会问为什么没有出现 object 类型,也就是 JS 中的对象,事实上 rust 中类似 JS 中对象的东西叫做结构体 struct,由于结构体稍微比较复杂,后面会有单独的章节介绍。
版权声明: 本文为 InfoQ 作者【码生笔谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/1451392dbf4fa5435f9fc36f4】。文章转载请联系作者。
评论