Kurzusok
/
jq
jq
/
Tanterv
/
Elágazások
El

Elágazások ebben a kurzusban: jq

7 feladat

A(z) Elágazások fogalomról

Az if kifejezés

A jq feltételes kifejezése az if A then B else C end.

Az if-then-else szűrő, akárcsak a jq összes beépített függvénye: bemenetet kap, és kimenetet állít elő.

Ha az A kifejezés „igaznak számító” értéket ad, akkor az if szűrő kiértékeli a B-t. Ellenkező esetben a C-t értékeli ki. Az if szűrő bemenetét a B vagy a C kapja meg.

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

Az else ág elhagyható; a következő két utasítás egyenértékű.

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

Egymásba ágyazott elágazások

Az elif kulcsszóval további feltételeket adhatsz hozzá.

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

Annyi elif ágat használhatsz, amennyire szükséged van.

Igaznak számító értékek

A jq-ban az egyetlen „hamis” érték a false és a null. Minden más „igaz”, még a nulla, valamint az üres string, tömb és objektum is.

Boolean-operátorok

A Boolean-operátorok, az and és az or segítségével összetett lekérdezéseket építhetsz fel.

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

A tagadáshoz a not-ot használd. Ez egy szűrő, nem operátor.

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

Az alternatív operátor

Az alternatív operátorral „alapértelmezett” értéket adhatsz meg, ha egy kifejezés hamis vagy null.

A // B

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

Íme egy példa:

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

Van még valami?

A más nyelvekből érkező programozók esetleg a feltételes utasítások szélesebb választékát várnák, például a cond, case, switch, when, unless kulcsszavakat, egy ternáris operátort és hasonlókat. Pedig a jq mindössze a fent felsorolt operátorokat kínálja.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Elágazások fogalmat

A gyakorlás zárolva

Oldj fel még 6 feladatot, hogy gyakorolhasd a(z) Elágazások fogalmat