我对 Rust 很感兴趣,于是我开始阅读 Rust 网站上的 Rust 编程指南,并发现变量是以以下方式声明:
let x: i32 = 5;
这意味着将整数值5分配给32位整数类型的变量,从现在开始通过符号引用它。
我的主要问题是为什么要有let
关键字?它似乎是多余的,好像实际上并没有做任何事情。
我假设编译器能够确定以下内容是一个变量(或常量变量)声明:
x: i32 = 5;
似乎没有理由使用let
关键字,但Rust专注于安全,因此可能有一个聪明的理由。那么这个原因是什么呢?
补充说明:作为函数参数时,不需要使用let关键字。以下是一个例子:
fn add1(x: i32) -> i32
{
x = x + 1
}
这似乎有点奇怪 - 因为缺少 let
,所以“看起来”像是引用传递。但实际上并不是,它是值传递(至少我认为是这样)。这是一种语法上的不一致吗?
另外,我认为将语句改为以下形式更加合理:
i32 x = 5;
如果你愿意的话,可以在那里加上一个冒号:
i32: x = 5;
我认为这更符合逻辑,因为:
- 在编程时,通常在想到名称之前就知道要使用什么类型的数据。
也许有些人想法不同?但这引出了另一个问题:在Rust中如何声明多个相同类型的变量?例如:
let x, y, z: i32 = {4, 5, 5} // A guess of what this might look like?
还是说在 Rust 中不允许这样做?
&
或其他指示符,你怎么会觉得发生了任何按引用传递的事情,这超出了我的理解范围。 - user395760let
关键字让我个人感觉好像并没有创建一个新的变量。因此,也许它是其他东西。也许那个其他东西是一个引用?还有什么可能性呢? - FreelanceConsultant