类型推断
Type inference
类型推断意味着,如果您不告诉编译器类型,但是它可以自行决定,它将决定。编译器总是需要知道变量的类型,但是您并不需要总是告诉它。例如,对于让 my_number = 8
,my_number 将是一个 i32。那是因为如果您不告诉编译器,编译器会选择 i32 作为整数。但是,如果您说 my_number:u8 = 8
,它将使 my_number 为 u8,因为您已将其告知 u8。因此通常编译器可以猜测。但是有时由于两个原因,开发者需要指定具体的类型:您做的事情非常复杂,编译器不知道所需的类型;您需要其他类型(例如,您需要 i128,而不是 i32)。
要指定类型,请在变量名称后添加一个冒号。
fn main() {
let small_number: u8 = 10;
}
对于数字,您可以在数字后面说出类型。您不需要空格,只需在数字后面输入即可。
fn main() {
let small_number = 10u8; // 10u8 = 10 of type u8
}
如果您想使数字易于阅读,也可以添加 _
。
fn main() {
let small_number = 10_u8; // This is easier to read
let big_number = 100_000_000_i32; // 100 million is easy to read with _
}
_
不会更改数字。这只是为了使您易于阅读。不管您使用多少 _
:
fn main() {
let number = 0________u8;
let number2 = 1___6______2____4______i32;
println!("{}, {}", number, number2);
}
// 0, 1624