Есть ли хороший способ добавить в кавычки значение непосредственно для набора?
В Nix мы можем использовать антикатотацию для выбора атрибута на основе переменной:
let
x = { a = "V" ; };
sel = "a";
in
x."${sel}"
result> "V"
Но чтоесли вместо этого мы хотим выбрать набор x
, основанный на антикатоте?
let
x = { a = "V" ; };
sel = "x";
in
"${sel}".a
result> (paraphrased) error: Expected a set but received a string.
Никс жалуется, что он пытался получить атрибут a
из набора, но ему не далиset (x
), ему была дана строка ("x"
). Я понимаю, что мы не хотели бы вообще приводить строку "x"
к значению in-scope, x
, но мне кажется странным, что Nix не будет в этом случае, когда мы рассматриваем его специально как набор,Но я отвлекся ...
В любом случае, я был бы признателен за демонстрацию простой схемы преодоления этой проблемы. Или, что еще лучше, конструкцию многоразового использования, такую как (toSet sel).a
, которая работает, как и ожидалось. Спасибо!