【问题标题】:meaning of $value in function formal parameters函数形式参数中 $value 的含义
【发布时间】:2021-06-30 08:20:31
【问题描述】:

我正在查看 JQ "builtin.jq" 文件,然后找到

def _assign(paths; $value): reduce path(paths) as $p (.; setpath($p; $value));

并试图找出“$value”作为形式参数的语义。这可能意味着该参数应该只提供一个值,而不是它们的列表。或者它可能与

def _assign(paths; vv): vv as $value | reduce path(paths) as $p (.; setpath($p; $value));

或者是别的什么?

我在文档中找不到关于这种函数形式参数的任何内容。

【问题讨论】:

    标签: function arguments jq semantics


    【解决方案1】:

    def _assign(paths; vv): vv as $value ...你说得对

    实质上,形参$x相当于在形参列表中有x,紧接着是x as $x

    这点在jq manual中有简单的提及:

    Or use the short-hand:
    
    def addvalue($f): ...;
    

    没有提到的是,在这个例子中,f 也可以用在addvalue 的主体中,尽管这样做很容易引起混淆。例如,您希望以下结果会产生什么结果?

    echo 1 2 3 | jq -n 'def f($x): x+x; f(input)'
    

    【讨论】:

      猜你喜欢
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 2014-03-12
      相关资源
      最近更新 更多