seti strüktür kullanan bir Nix işlevini çağırmak için, tam bu fazla gerektirir anahtarları ile bunu bir dizi geçmesi gerekiyor ve az:Nix'in "callPackage" çağırma işlevleri elips olmaksızın nasıl tanımlanır?
nix-repl> ({ a }: a) { a = 4; b = 5; }
error: anonymous function at (string):1:2 called with unexpected argument ‘b’, at (string):1:1
Bunun istisnası olan işlevin argümanı eğer
nix-repl> ({ a, ... }: a) { a = 4; b = 5; }
4
Ancak nixpkgs paketlerin çoğu bu nokta ile tanımlanan olmayan bir fonksiyon ihtiva eden bir default.nix
dosya oluşur: liste ucunda bir üç nokta vardır. Yine de, bir şekilde callPackage
'u kullandığınızda, bu işlevleri çağırmayı ve yalnızca ihtiyaç duydukları argümanları iletmeyi başarıyor. Bu nasıl uygulanır?
nix-repl> __functionArgs ({ x ? 1, y }: x)
{ x = true; y = false; }
callPackage
sonra bu üzerinde dolaşır özellik adlarını