Warum ignoriert dieses Rust-Programm die Unveränderlichkeit?

8

Ich habe das folgende Rust-Programm und erwarte, dass es zu einem Kompilierungsfehler kommt, da x später neu zugewiesen wird. Aber es entspricht und gibt eine Ausgabe. Warum?

%Vor%     
Viraj 24.03.2017, 04:16
quelle

1 Antwort

13

Mit Rust können Sie auch andere Variablen in einem Block abbilden, sodass let x: i32 = 565; eine neue Variable x definiert, die die zuvor definierte x mit let (x,y) = (1,3); abdunkelt. Beachten Sie, dass Sie x sogar neu definiert haben könnten, um einen anderen Typ zu haben, da das zweite x eine ganz neue Variable ist!

%Vor%

Dieser Reddit-Thread geht ausführlicher darauf ein, warum dies nützlich ist. Die zwei Dinge, die erwähnt werden, die interessant scheinen, sind:

  • Bei Operationen, die die Variable übernehmen, aber eine andere Variable desselben Typs zurückgeben, sieht es manchmal "nett" aus, die zurückgegebene Variable so zu definieren, dass sie den gleichen Namen hat. Von hier :

    %Vor%
  • Oder um eine Variable unveränderlich zu machen:

    %Vor%
Alec 24.03.2017, 04:44
quelle

Tags und Links