Информация об изменениях

Сообщение Re[2]: Что такое "связывание переменных"? от 29.11.2021 21:58

Изменено 29.11.2021 22:17 Эйнсток Файр

Re[2]: Что такое "связывание переменных"?
Pzz> чтобы человек не перепутал, и не положил количество яблок в переменную, тип которой объявленн, как количество апельсинов.

А что по этому поводу думали авторы Rust, которые сделали кадую строчку переобъявлением переменной,
кроме тех переменных, которые помечены словом mut ?

Второй раз у них присвоить нельзя:
https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html

error[E0384]: cannot assign twice to immutable variable `x`


Но слово let — оно ведь лишнее:
https://doc.rust-lang.org/std/keyword.let.html

Multiple variables can be defined with the same name, known as shadowing.


Можно было сделать shadowing по-умолчанию и сэкономить на словах let и var.
Re[2]: Что такое "связывание переменных"?
Pzz> чтобы человек не перепутал, и не положил количество яблок в переменную, тип которой объявленн, как количество апельсинов.

А что по этому поводу думали авторы Rust, которые сделали кадую строчку переобъявлением переменной,
кроме тех переменных, которые помечены словом mut ?
// Rust          C/C++
    a: &T     == const T* const a; // can't mutate either
mut a: &T     == const T* a;       // can't mutate what is pointed to
    a: &mut T == T* const a;       // can't mutate pointer
mut a: &mut T == T* a;             // can mutate both


Второй раз у них присвоить нельзя:
https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html

error[E0384]: cannot assign twice to immutable variable `x`


Но слово let — оно ведь лишнее:
https://doc.rust-lang.org/std/keyword.let.html

Multiple variables can be defined with the same name, known as shadowing.


Можно было сделать shadowing по-умолчанию и сэкономить на словах let и var.