为什么varx在这段代码中不是不变的?
y = { g = 'a' }
z = { g = 1 }
varx = foo y
varx = foo z
Run Code Online (Sandbox Code Playgroud)
有人知道吗 谢谢。
我猜想这段代码是在Elm REPL中执行的。不可变变量在此的行为略有不同。从榆木入门书中:
https://elmprogramming.com/immutability.html
副本的工作方式略有不同。每当我们将一个不同的值重新分配给一个现有的常量时,REPL都会将常量重新绑定到一个新值。重新绑定过程杀死了该常数并将其恢复活力,就好像该常数以前从未指向任何其他值一样。
用Elm make以普通方式编译Elm代码时,此代码将导致错误。