我对 Rust 很感兴趣,所以我开始阅读 Rust 网站上的 Rust 编程指南,发现变量是通过以下方式声明的:
let x: i32 = 5;
这意味着将值整数 5 分配给变量类型整数 32 位,应通过符号来引用x
从现在开始。
我的主要问题是为什么let
到底有没有关键字?这似乎是多余的,好像它实际上并没有“做”任何事情。
我假设编译器能够判断以下是变量(或 const 变量)声明:
x: i32 = 5;
似乎没有理由let
关键字,但大概有is这是一个聪明的理由,因为 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 中是不允许的?