Методы моделирования операторов переключения в GDScript

В GDScript оператор «switch» недоступен, как в некоторых других языках программирования. Однако существуют альтернативные методы, которые можно использовать для достижения аналогичной функциональности. Вот несколько подходов:

  1. Операторы if-elif-else: вы можете использовать серию операторов if-elif-else для имитации поведения оператора переключателя. Каждое условие можно проверить с помощью предложений if-elif, и соответствующий блок кода будет выполнен, если условие истинно.

Пример:

var value = 2
if value == 1:
    # Code for case 1
elif value == 2:
    # Code for case 2
elif value == 3:
    # Code for case 3
else:
    # Code for default case
  1. Сопоставление словаря. Вы можете использовать словарь для сопоставления значений с функциями или блоками кода. Такой подход позволяет связать с каждым значением конкретные действия.

Пример:

var value = "b"
var cases = {
    "a": func_a,
    "b": func_b,
    "c": func_c,
}
if cases.has(value):
    cases[value]()
else:
    # Code for default case
func func_a():
    # Code for case 'a'
func func_b():
    # Code for case 'b'
func func_c():
    # Code for case 'c'
  1. Перечисления. Вы можете определить перечисление для представления возможных случаев, а затем использовать оператор сопоставления для обработки каждого случая.

Пример:

enum Case {
    CASE_A,
    CASE_B,
    CASE_C,
}
var value = Case.CASE_B
match value:
    Case.CASE_A:
        # Code for case A
    Case.CASE_B:
        # Code for case B
    Case.CASE_C:
        # Code for case C
    _:
        # Code for default case