Значения в nix
неизменны; Вы не можете изменить значение test.a
, потому что это потребует изменения набора. Вы можете создать только новый набор с другим значением a
.
nix-repl> test = {"a"=10;}
nix-repl> test // {"a"=20;}
{ a = 20; }
nix-repl> test
{ a = 10; }
nix-repl> test2 = test // {"a"=20;}
nix-repl> test2
{ a = 20; }
Оператор //
объединяет два набора со значениями справа, переопределяя значения на левый.
nix-repl> {"a"=10; "b"=20;} // {"a"="changed"; c="30";}
{ a = "changed"; b = 20; c = "30"; }