hugo/docs/content/en/functions/compare/Cond.md
2023-10-20 09:43:56 +02:00

1.5 KiB

title linkTitle description categories keywords menu function relatedFunctions aliases
compare.Conditional cond Returns one of two arguments depending on the value of the control argument.
functions
docs
parent
functions
aliases returnType signatures
cond
any
compare.Conditional CONTROL ARG1 ARG2
compare.Conditional
compare.Default
/functions/cond

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" }}