54 lines
1.1 KiB
Markdown
54 lines
1.1 KiB
Markdown
|
---
|
||
|
layout: "functions"
|
||
|
page_title: "toset - Functions - Configuration Language"
|
||
|
sidebar_current: "docs-funcs-conversion-toset"
|
||
|
description: |-
|
||
|
The toset function converts a value to a set.
|
||
|
---
|
||
|
|
||
|
# `toset` Function
|
||
|
|
||
|
`toset` converts its argument to a set value.
|
||
|
|
||
|
Explicit type conversions are rarely necessary in Terraform because it will
|
||
|
convert types automatically where required. Use the explicit type conversion
|
||
|
functions only to normalize types returned in module outputs.
|
||
|
|
||
|
Pass a _list_ value to `toset` to convert it to a set, which will remove any
|
||
|
duplicate elements and discard the ordering of the elements.
|
||
|
|
||
|
## Examples
|
||
|
|
||
|
```
|
||
|
> toset(["a", "b", "c"])
|
||
|
[
|
||
|
"a",
|
||
|
"b",
|
||
|
"c",
|
||
|
]
|
||
|
```
|
||
|
|
||
|
Since Terraform's concept of a set requires all of the elements to be of the
|
||
|
same type, mixed-typed elements will be converted to the most general type:
|
||
|
|
||
|
```
|
||
|
> tolist(["a", "b", 3])
|
||
|
[
|
||
|
"a",
|
||
|
"b",
|
||
|
"3",
|
||
|
]
|
||
|
```
|
||
|
|
||
|
Set collections are unordered and cannot contain duplicate values, so the
|
||
|
ordering of the argument elements is lost and any duplicate values are
|
||
|
coalesced:
|
||
|
|
||
|
```
|
||
|
> tolist(["c", "b", "b"])
|
||
|
[
|
||
|
"b",
|
||
|
"c",
|
||
|
]
|
||
|
```
|