hugo/docs/content/en/functions/cond.md
2023-08-30 19:24:34 +02:00

1.3 KiB

title description categories keywords menu signature relatedfuncs
cond Returns one of two arguments depending on the value of the control argument.
functions
conditional
ternary
docs
parent
functions
cond CONTROL ARG1 ARG2
default

The CONTROL argument is a boolean value that indicates whether the function should return ARG1 or ARG2. If CONTROL is true, the function returns ARG1. Otherwise, the function returns ARG2.

{{ $qty := 42 }}
{{ cond (le $qty 3) "few" "many" }} → "many"

The CONTROL argument must be either true or false. To cast a non-boolean value to boolean, pass it through the not operator twice.

{{ cond (42 | not | not) "truthy" "falsy" }} → "truthy"
{{ cond ("" | not | not) "truthy" "falsy" }} → "falsy"

{{% note %}} Unlike ternary operators in other languages, the cond function does not perform short-circuit evaluation. The function evaluates both ARG1 and ARG2, regardless of the CONTROL value.

{{% /note %}}

Due to the absence of short-circuit evaluation, these examples throw an error:

{{ cond true "true" (div 1 0) }}
{{ cond false (div 1 0) "false" }}