58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
---
|
|
page_title: coalesce - Functions - Configuration Language
|
|
description: |-
|
|
The coalesce function takes any number of arguments and returns the
|
|
first one that isn't null nor empty.
|
|
sidebar_title: coalesce
|
|
---
|
|
|
|
# `coalesce` Function
|
|
|
|
`coalesce` takes any number of arguments and returns the first one
|
|
that isn't null or an empty string.
|
|
|
|
All of the arguments must be of the same type. Terraform will try to
|
|
convert mismatched arguments to the most general of the types that all
|
|
arguments can convert to, or return an error if the types are incompatible.
|
|
The result type is the same as the type of all of the arguments.
|
|
|
|
## Examples
|
|
|
|
```
|
|
> coalesce("a", "b")
|
|
a
|
|
> coalesce("", "b")
|
|
b
|
|
> coalesce(1,2)
|
|
1
|
|
```
|
|
|
|
To perform the `coalesce` operation with a list of strings, use the `...`
|
|
symbol to expand the list as arguments:
|
|
|
|
```
|
|
> coalesce(["", "b"]...)
|
|
b
|
|
```
|
|
|
|
Terraform attempts to select a result type that all of the arguments can
|
|
convert to, so mixing argument types may produce surprising results due to
|
|
Terraform's automatic type conversion rules:
|
|
|
|
```
|
|
> coalesce(1, "hello")
|
|
"1"
|
|
> coalesce(true, "hello")
|
|
"true"
|
|
> coalesce({}, "hello")
|
|
|
|
Error: Error in function call
|
|
|
|
Call to function "coalesce" failed: all arguments must have the same type.
|
|
```
|
|
|
|
## Related Functions
|
|
|
|
* [`coalescelist`](/language/functions/coalescelist) performs a similar operation with
|
|
list arguments rather than individual arguments.
|