Trilhas
/
jq
jq
/
Programa
/
Condicionais
Co

Condicionais em jq

7 exercícios

Sobre Condicionais

Expressão if

A expressão condicional do jq é if A then B else C end.

if-then-else é um filtro, como todas as funções internas do jq: recebe uma entrada e produz uma saída.

Se a expressão A produzir um valor "verdadeiro", o filtro if avalia B. Caso contrário, avalia C. A entrada do filtro if será passada para B ou C.

42 | if . < 50 then "small" else "big" end      # => "small"
5 | if . % 2 == 0 then . / 2 else . * 4 end     # => 20
Note

A cláusula else é opcional; as duas instruções a seguir são equivalentes.

if A then B else . end
if A then B end

Condicionais aninhadas

Outras condições podem ser adicionadas com elif.

42 | if . < 33 then "small"
     elif . < 66 then "medium"
     else "big"
     end
# => "medium"

Use quantas cláusulas elif precisar.

Veracidade

Os únicos valores "falsos" em jq são: false e null. Todo o resto é "verdadeiro", até o número zero e a string vazia, o array vazio e o objeto vazio.

Operadores Boolean

Os operadores Boolean and e or podem ser usados para montar consultas complexas.

42 | if . < 33 or . > 66 then "big or small"
     else "medium"
     end

Para negar, use not. Isso é um filtro, não um operador.

42 | if (. < 33 or . > 66 | not) then "medium"
     else "big or small"
     end

Operador alternativo

O operador alternativo permite especificar um valor "padrão" se uma expressão for false ou null.

A // B

# This is identical to
if A then A else B end

Para demonstrar

[3, 5, 18] | add / 2       # => 13
[]         | add / 2       # => error: null (null) and number (2) cannot be divided
[]         | add // 0 / 2  # => 0

Tem mais?

Programadores vindos de outras linguagens podem esperar uma variedade maior de comandos condicionais, como cond, case, switch, when, unless, um operador ternário, etc. Os operadores listados acima são tudo o que o jq oferece.

Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Condicionais

A prática está bloqueada

Desbloqueie mais 6 exercícios para praticar Condicionais