Polymorphism 如何在jq中复制列表N次?
语法Polymorphism 如何在jq中复制列表N次?,polymorphism,jq,Polymorphism,Jq,语法[…]*N仅适用于字符串,不适用于列表。此外,我还没有在手册中找到一个内置的,可以轻松完成这项任务 所以我不得不做一些类似的事情 [range(N)|...]|add 有没有一种更简单(或更惯用)的方法在jq N次中复制列表 有没有更简单的方法可以在jq N次中复制列表 不,显然至少部分是因为jq的创建者认为多态性一般不应该扩展到复合类型。考虑“JavaScript:坏的部分”。 还要考虑的是,对于复合类型,“明显意义”的唯一性往往无法得到保证。例如,在某些上下文中,人们可能希望甚至期望[
[…]*N
仅适用于字符串,不适用于列表。此外,我还没有在手册中找到一个内置的,可以轻松完成这项任务
所以我不得不做一些类似的事情
[range(N)|...]|add
有没有一种更简单(或更惯用)的方法在jq N次中复制列表
有没有更简单的方法可以在jq N次中复制列表
不,显然至少部分是因为jq的创建者认为多态性一般不应该扩展到复合类型。考虑“JavaScript:坏的部分”。
还要考虑的是,对于复合类型,“明显意义”的唯一性往往无法得到保证。例如,在某些上下文中,人们可能希望甚至期望[1,2]*3应该产生[3,6]
有没有更简单的方法可以在jq N次中复制列表
不,显然至少部分是因为jq的创建者认为多态性一般不应该扩展到复合类型。考虑“JavaScript:坏的部分”。
还要考虑的是,对于复合类型,“明显意义”的唯一性往往无法得到保证。例如,在某些上下文中,您可能希望甚至期望[1,2]*3应该产生[3,6]。您要查找的语法不存在。最好是定义一个函数来重复可重用选项的值
def repeat($n):
. as $val | range($n) | $val;
在您的情况下,要创建一个将另一个数组的内容重复N次的数组,您可以使用上面的操作:
[repeat($N)[]]
对于某些数字,
$N
您要查找的语法不存在。最好是定义一个函数来重复可重用选项的值
def repeat($n):
. as $val | range($n) | $val;
在您的情况下,要创建一个将另一个数组的内容重复N次的数组,您可以使用上面的操作:
[repeat($N)[]]
对于一些数字,
$N
Re“显然至少部分是因为jq的创建者认为多态性一般不应该扩展到复合类型”,除了所讨论的操作符,*
,具有扩展到某些复合类型(对象)的多态性。“两个对象相乘会递归地合并”这就是为什么我用“一般”来限定这一点。他们的感受并没有反映在现实中。8个运算符(+
、-
、*
、/
和赋值;但不包括/
、%
和比较)中的5个运算符被记录为处理某些类型的复合运算符。通常,运算符处理某些复合类型的频率更高。同样,认为*
在数组上不起作用是不诚实的,因为当*
在复合类型上起作用时,设计者通常不赞成运算符在复合类型上工作。jq有六种类型,因此*
有36种可能的限制。jq有两种化合物类型,因此涉及至少一种化合物类型的\u*\ uu
的可能限制数量为20。在这20种可能性中,实际上只定义了一种(object*object
),它没有扩展任何其他已定义的限制。那么?这与我所说的任何事情都不矛盾,甚至不相关,“显然至少部分是因为jq的创建者认为多态性一般不应该扩展到复合类型”,除了所讨论的操作符,*
,具有扩展到某些复合类型(对象)的多态性。“两个对象相乘会递归地合并”这就是为什么我用“一般”来限定这一点。他们的感受并没有反映在现实中。8个运算符(+
、-
、*
、/
和赋值;但不包括/
、%
和比较)中的5个运算符被记录为处理某些类型的复合运算符。通常,运算符处理某些复合类型的频率更高。同样,认为*
在数组上不起作用是不诚实的,因为当*
在复合类型上起作用时,设计者通常不赞成运算符在复合类型上工作。jq有六种类型,因此*
有36种可能的限制。jq有两种化合物类型,因此涉及至少一种化合物类型的\u*\ uu
的可能限制数量为20。在这20种可能性中,实际上只定义了一种(object*object
),它没有扩展任何其他已定义的限制。那么?这与我说的任何话都不矛盾,甚至没有关系