jq中快速真值检查/转布尔值:有无更简洁写法替代if-then-else?
jq中检查过滤器真值的简洁写法
当然有更简洁的写法,以下两种方式都能和if f then true else false end完全等价,完美匹配jq的真值规则(仅false和null视为假,其余所有值均为真):
两次取反法:
f | not | not原理:
not运算符会把真值(非false/null)转为false,假值转为true,再次取反就得到与原过滤器真值对应的标准布尔值。直接判断法:
f | . != false and . != null完全贴合jq真值规则的定义,直接检查结果是否不属于
false或null,返回明确的true/false。
内容的提问来源于stack exchange,提问作者A.H.
相关产品推荐
相关产品推荐

