您何时需要使用类型注释?

问题描述 投票:3回答:1

虽然从Rust Book读取Data Types,但我注意到有时使用类型注释定义变量,有时不使用类型注释。

我什么时候应该使用类型注释?

let tup: (i32, f64, u8) = (500, 6.4, 1);

let tup = (500, 6.4, 1);

let months = ["January", "February", "March", "April", "May", "June", "July",
              "August", "September", "October", "November", "December"];

let a: [i32; 5] = [1, 2, 3, 4, 5];
types rust
1个回答
2
投票

指定类型必须

如果编译器不能自行推断类型,则必须指定:

let numbers: Vec<_> = (0..10).collect();

类型也不能从项目中省略。特别地,conststatic看起来非常类似于let语句,但是必须指定类型[[必须:

const PI_SQUARED: i32 = 10; // Not valid syntax const HALF_PI = 1.5;
当指定类型

不能

当类型为匿名时,无法指定

fn displayable() -> impl std::fmt::Display { "" } fn main() { let foo = displayable(); // Not valid syntax: let foo: impl std::fmt::Display = displayable(); }

可以指定类型,但不能指定类型

但是在大多数情况下,可以指定类型,但不必指定:编译器可以从使用情况中推断出它。

在Rust中,通常建议在可能的情况下省略简单类型。人们决定不再简单的事物并决定是否必须指定事物的界限是非常基于观点的,超出了StackOverflow的范围。

© www.soinside.com 2019 - 2024. All rights reserved.