`null` 和 `no output` 的区别
Difference between `null` and `no output`
我遇到了 null
和 nothing
之间的一些差异,有人可以解释一下吗?在大多数语言中,null
是 considered/used 代表什么。
select
记录到return无输出。并添加(即 +
)null
到 X 产生 X。现在考虑这些示范性示例(无需输入):
- 添加无
这里我们有空对象,我们什么都不更新:
{} | . |= . + ({} | select (.foo == 123))
这导致
null
- 添加 null
相同的模板,但使用替代运算符将 nothing 替换为 null:
{} | . |= . + ({} | select (.foo == 123)//null)
这导致
{}
谁能解释一下 nothing
和 null
的区别?
null
只是一个常规的 JSON 值;从概念上讲,它与没有值完全不同,即您所说的 nothing。看看这些例如(empty
是一个 returns 什么都没有的过滤器):
$ jq -n '[null] | length'
1
$ jq -n '[empty] | length'
0
{} + null
returns {}
返回,{} | . |= empty
与 del(.)
完全相同,只是设计选择。
我遇到了 null
和 nothing
之间的一些差异,有人可以解释一下吗?在大多数语言中,null
是 considered/used 代表什么。
select
记录到return无输出。并添加(即 +
)null
到 X 产生 X。现在考虑这些示范性示例(无需输入):
- 添加无
这里我们有空对象,我们什么都不更新:
{} | . |= . + ({} | select (.foo == 123))
这导致
null
- 添加 null
相同的模板,但使用替代运算符将 nothing 替换为 null:
{} | . |= . + ({} | select (.foo == 123)//null)
这导致
{}
谁能解释一下 nothing
和 null
的区别?
null
只是一个常规的 JSON 值;从概念上讲,它与没有值完全不同,即您所说的 nothing。看看这些例如(empty
是一个 returns 什么都没有的过滤器):
$ jq -n '[null] | length'
1
$ jq -n '[empty] | length'
0
{} + null
returns {}
返回,{} | . |= empty
与 del(.)
完全相同,只是设计选择。