Spec-Zone.ru › OpenTofu 1.11

Условные выражения

Условное выражение использует значение логического выражения, чтобы выбрать одно из двух значений.

Синтаксис​

Синтаксис условного выражения выглядит следующим образом:

Блок кода
condition ? true_val : false_val

Если condition равно true, результатом будет true_val. Если condition равно false, результатом будет false_val.

Условные выражения часто используются для задания значений по умолчанию, заменяющих недопустимые значения:

Блок кода
var.a != "" ? var.a : "default-a"

Если var.a — пустая строка, результатом будет "default-a", в противном случае результатом будет фактическое значение var.a.

Условия​

Условием может быть любое выражение, результатом которого является логическое значение. Обычно это выражение с операторами равенства, сравнения или логическими операторами.

Пользовательские проверки условий​

Вы можете создавать условия, которые выводят собственные сообщения об ошибках для нескольких типов объектов в конфигурации. Например, можно добавить условие к входной переменной, проверяющее правильность формата входящих идентификаторов образов.

Пользовательские условия помогают зафиксировать предположения, чтобы будущим разработчикам было проще понять структуру и назначение конфигурации. Они также позволяют раньше и в контексте получать полезную информацию об ошибках, помогая пользователям быстрее диагностировать проблемы в конфигурациях.

Подробности см. в разделе «Пользовательские проверки условий».

Типы результатов​

Значения обоих результатов могут быть любого типа, но они должны быть одного и того же типа, чтобы OpenTofu мог определить тип, который будет возвращать все условное выражение, не зная значения условия.

Если выражения для двух результатов не возвращают значения одного и того же типа, OpenTofu попытается найти тип, к которому можно преобразовать оба значения, и, если это возможно, выполнит преобразования автоматически.

Например, следующее выражение допустимо и всегда будет возвращать строку, поскольку в OpenTofu все числа можно автоматически преобразовать в строку с помощью десятичных цифр:

Блок кода
var.example ? 12 : "hello"

Однако использование такого автоматического преобразования может сбить с толку тех, кто не знаком с правилами преобразования OpenTofu, поэтому мы рекомендуем явно указывать преобразование с помощью функций преобразования типов в ситуациях, когда ожидаемый тип результата может быть неочевиден.

Следующий пример искусственный, поскольку в этом случае вместо преобразования типа проще было бы записать константу "12", но он показывает, как использовать tostring для явного преобразования числа в строку.

Блок кода
var.example ? tostring(12) : "hello"

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/expressions/conditionals/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API