Tracce
/
jq
jq
/
Programma
/
Condizionali
Co

Condizionali in jq

7 esercizi

Informazioni su Condizionali

L'espressione if

L'espressione condizionale di jq è if A then B else C end.

if-then-else è un filtro come tutti i built-in di jq: prende un input e produce un output.

Se l'espressione A produce un valore «truthy», il filtro if valuta B. Altrimenti valuta C. L'input del filtro if viene passato a B o a C.

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

La clausola else è facoltativa: le due istruzioni seguenti sono equivalenti.

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

Istruzioni if annidate

Si possono aggiungere altre condizioni con elif.

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

Usa tutte le clausole elif che ti servono.

Veridicità

Gli unici valori «falsi» in jq sono false e null. Tutto il resto è «vero», persino il numero zero e la stringa, l'array e l'oggetto vuoti.

Operatori booleani

Gli operatori booleani and ed or si possono usare per costruire query complesse.

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

Per negare, usa not. Questo è un filtro, non un operatore.

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

L'operatore alternativo

L'operatore alternativo ti permette di specificare un valore «predefinito» se un'espressione è falsa o null.

A // B

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

Per dimostrarlo

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

Ce ne sono altri?

Chi programma venendo da linguaggi diversi potrebbe aspettarsi una varietà più ampia di comandi condizionali, come cond, case, switch, when, unless, un operatore ternario e così via. Gli operatori elencati sopra sono tutto ciò che jq offre.

Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Condizionali

La pratica è bloccata

Sblocca 6 altri esercizi per esercitarti su Condizionali