跳至主要内容

表达式

表达式 在配置中引用或计算值。最简单的表达式只是字面量值,如 "hello"5,但 OpenTofu 语言还允许更复杂的表达式,例如对资源导出的数据的引用、算术运算、条件评估以及许多内置函数。

表达式可以在 OpenTofu 语言的许多地方使用,但某些上下文会限制允许的表达式结构,例如要求特定类型的字面量值或禁止 对资源属性的引用。每个语言功能的文档都会描述它对表达式的任何限制。

您可以通过运行 tofu console 命令,从 OpenTofu 表达式控制台实验 OpenTofu 表达式的行为。

本节中的其他页面描述了 OpenTofu 表达式语法的功能。

  • 类型和值 文档记录了 OpenTofu 表达式可以解析成的 数据类型,以及这些类型的值的字面量语法。

  • 字符串和模板 文档记录了字符串字面量的语法,包括插值序列和模板指令。

  • 对值的引用 文档记录了如何引用命名值,例如变量和资源属性。

  • 运算符 文档记录了算术、比较和逻辑运算符。

  • 函数调用 文档记录了调用 OpenTofu 内置函数的语法。

  • 条件表达式 文档记录了 <CONDITION> ? <TRUE VAL> : <FALSE VAL> 表达式,该表达式根据布尔条件在两个值之间进行选择。

  • For 表达式 文档记录了类似 [for s in var.list : upper(s)] 的表达式,这些表达式可以将复杂类型的值转换为另一个复杂类型的值。

  • Splat 表达式 文档记录了类似 var.list[*].id 的表达式,这些表达式可以从更复杂的表达式中提取更简单的集合。

  • 动态块 文档记录了一种在资源或其他结构中创建多个可重复嵌套块的方法。

  • 类型约束 文档记录了引用类型(而不是该类型的值的语法)。输入变量在其 type 参数中需要此语法。

  • 版本约束 文档记录了定义一组允许的软件版本的特殊字符串的语法。OpenTofu 在多个地方使用版本约束。