| --- |
| page_title: Expressions Landing Page - Configuration Language |
| --- |
| |
| # Expressions Landing Page |
| |
| To improve navigation, we've split the old Expressions page into several smaller |
| pages. |
| |
| <a id="types-and-values"></a> <a id="advanced-type-details"></a> <a id="type-conversion"></a> <a id="literal-expressions"></a> <a id="indices-and-attributes"></a> |
| |
| ## Types and Values, Literal Expressions, Indices and Attributes |
| |
| Terraform's types are `string`, `number`, `bool`, `list`, `tuple`, `map`, |
| `object`, and `null`. |
| |
| This information has moved to |
| [Types and Values](/language/expressions/types). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| <a id="references-to-named-values"></a> <a id="local-named-values"></a> <a id="named-values-and-dependencies"></a> <a id="references-to-resource-attributes"></a> <a id="local-named-values-1"></a> <a id="values-not-yet-known"></a> |
| |
| ## References to Named Values (Resource Attributes, Variables, etc.) |
| |
| You can refer to certain values by name, like `var.some_variable` or |
| `aws_instance.example.ami`. |
| |
| This information has moved to |
| [References to Values](/language/expressions/references). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| <a id="arithmetic-operators"></a> <a id="equality-operators"></a> <a id="comparison-operators"></a> <a id="logical-operators"></a> |
| |
| ## Arithmetic and Logical Operators |
| |
| Operators are expressions that transform other expressions, like adding two |
| numbers (`+`) or comparing two values to get a bool (`==`, `>=`, etc.). |
| |
| This information has moved to |
| [Operators](/language/expressions/operators). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| ## Conditional Expressions |
| |
| The `condition ? true_val : false_val` expression chooses between two |
| expressions based on a bool condition. |
| |
| This information has moved to |
| [Conditional Expressions](/language/expressions/conditionals). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| <a id="expanding-function-arguments"></a> <a id="available-functions"></a> |
| |
| ## Function Calls |
| |
| Terraform's functions can be called like `function_name(arg1, arg2)`. |
| |
| This information has moved to |
| [Function Calls](/language/expressions/function-calls). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| <a id="for-expressions"></a> |
| |
| ## `for` Expressions |
| |
| Expressions like `[for s in var.list : upper(s)]` can transform a complex type |
| value into another complex type value. |
| |
| This information has moved to |
| [For Expressions](/language/expressions/for). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| <a id="splat-expressions"></a> <a id="legacy-attribute-only-splat-expressions"></a> |
| |
| ## Splat Expressions |
| |
| Expressions like `var.list[*].id` can extract simpler collections from complex |
| collections. |
| |
| This information has moved to |
| [Splat Expressions](/language/expressions/splat). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| <a id="dynamic-blocks"></a> <a id="best-practices-for-dynamic-blocks"></a> |
| |
| ## `dynamic` Blocks |
| |
| The special `dynamic` block type serves the same purpose as a `for` expression, |
| except it creates multiple repeatable nested blocks instead of a complex value. |
| |
| This information has moved to |
| [Dynamic Blocks](/language/expressions/dynamic-blocks). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |
| |
| <a id="string-literals"></a> <a id="string-templates"></a> <a id="interpolation"></a> <a id="directives"></a> |
| |
| ## String Literals and String Templates |
| |
| Strings can be `"double-quoted"` or |
| |
| ```hcl |
| <<EOT |
| heredocs |
| EOT |
| ``` |
| |
| Strings can also include escape sequences like `\n`, interpolation sequences |
| (`${ ... }`), and template sequences (`%{ ... }`). |
| |
| This information has moved to |
| [Strings and Templates](/language/expressions/strings). |
| |
| <div style={{height: '30vh', margin: 0, padding: 0}} /> |