相关疑难解决方法(0)

如何在没有省略号的情况下定义Nix的"callPackage"调用函数?

要调用使用一套解构一个尼克斯的功能,你需要用它传递了一套正是它需要,没有更多的按键也不能少:

nix-repl> ({ a }: a) { a = 4; b = 5; }
error: anonymous function at (string):1:2 called with unexpected argument ‘b’, at (string):1:1
Run Code Online (Sandbox Code Playgroud)

例外情况是函数的参数列表末尾包含省略号:

nix-repl> ({ a, ... }: a) { a = 4; b = 5; }
4
Run Code Online (Sandbox Code Playgroud)

但是,nixpkgs中的大多数包包含一个default.nix包含使用此省略号定义的函数的文件.然而,不管怎样,当你使用时callPackage,它设法调用这些函数并仅传递它们所需的参数.这是如何实现的?

nix nixpkgs

7
推荐指数
1
解决办法
309
查看次数

标签 统计

nix ×1

nixpkgs ×1