【发布时间】:2021-07-30 08:53:54
【问题描述】:
如果下面的 nix 表达式
let
f = "f";
o = "o";
b = "b";
func = {a ? f, b ? "a" , c ? ""}: a+b+c; #only modify this line!
in
rec {
foo = func {b="o"; c=o;}; #must evaluate to "foo"
bar = func {a=b; c="r";}; #must evaluate to "bar"
foobar = func {a=foo;b=bar;}; #must evaluate to "foobar"
}
- 在这里
{a ? f, b ? "a" , c ? ""}: a+b+c;我们声明一个 函数将属性集{a ? f, b ? "a" , c ? ""}作为 论据。 - 这里
func {b="o"; c=o;}我们将一个属性集({b="o"; c=o;}) 传递给 功能。
在第一个表达式中,我们有“,”分隔属性集的键,而在第二个表达式中,“,”是分隔键。为了表示属性集,我们使用两种不同的方法。这种理解正确吗?
【问题讨论】: