Nix从函数添加可变参数到集合

最高

在nix中有可能出现这种情况吗?

f = {x, y, ...}:
{
    x = x + 1;
    y = y + 2;
    ...;
}

在其中调用f一组参数将返回一组参数:

f { x = 1; y = 2; }                   -> { x = 2; y = 4; }
f { x = 1; y = 2; z = 5 }             -> { x = 2; y = 4; z = 5; }
f { x = 1; y = 2; z = 5; s = "str"; } -> { x = 2; y = 4; z = 5; s = "str"; }

要清楚。省略号集...可变参数类型,并不表示日常语言中使用等值。解决方案是get { ... }在可能的情况下调用省略号。但是我不知道该语言是否支持这一点。

戴维·格雷森

这应该工作:

f = args@{x, y, ...}: args // { x = x + 2; y = y + 2; }

你可以在这里读更多关于它的内容:

https://nixos.org/nix/manual/#ss-functions

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章