Rust有两种基本的浮点类型,是f32和f64,分别代表32类和64位大小,默认浮点类型为f64,因为在现代的cpu上,它的速度与f32大致相同,但具有更高的精度。所有的浮点类型都是有符号的。
下面代码展示浮点类型的用法
fn main() {
let x = 2.0; // f64
let y: f32 = 3.0; // f32
}
浮点类型遵循IEEE-754标准,f32是单精度浮点类型f64是双精度浮点类型
数值操作
Rust所有数据类型,支持基本的数学操作:+,-,*,/,%。整型除法舍到最近的整型。下面的代码显示l赋值的数字操作:
fn main() {
// addition
let sum = 5 + 10;
// subtraction
let difference = 95.5 - 4.3;
// multiplication
let product = 4 * 30;
// division
let quotient = 56.7 / 32.2;
let floored = 2 / 3; // Results in 0
// remainder
let remainder = 43 % 5;
在上面语句中的每个表达式使用了数学运算符去得到一个单值,然后赋给相应变量,附录B是Rust提供的所有操作符列表。
布尔类型
同其他大多数语言一样,Rust中的布尔类型有两个值 true,false. 布尔变量占用一个字节。Rust中的布尔类型用bool关键字指定。
fn main() {
let t = true;
let f: bool = false; // with explicit type annotation
}
使用bool类型场景主要是条件判断,如在if的表达式中,我们在流程控制一节中说明怎样使用if表达式。
字符类型
Rust的 char类型是语言的基本字符类型。下面是一些声明char的例子。
fn main() {
let c = 'z';
let z: char = 'ℤ'; // with explicit type annotation
let heart_eyed_cat = '😻';
}
请注意,
我们用单引号指定字符文本,而不是使用双引号的字符串文本。Rust 的 char 类型大小为 4 个字节,代表一个 Unicode 标量值,这意味着它可以代表的不仅仅是 ASCII。重音字母;中文、日文和韩文字符;表情符号;和零宽度空格都是 Rust 中的有效字符值。Unicode 标量值的范围从 U+0000 到 U+D7FF 和 U+E000 到 U+10FFFF (含)。然而,“字符”在 Unicode 中并不是一个真正的概念,所以你对“字符”是什么直觉可能与 Rust 中的实际字符不匹配。我们将在第 8 章的“使用字符串存储 UTF-8 编码文本”中详细讨论此主题。