Автоматоны в Pawn
В Pawn есть, так сказать система "состояний". Которая позволяет объявить несколько копий функций для использования в разных условиях.
Пример
Допустим нам нужно сохранить разные данные, например дома и игроков.
- Обычная реализация
- Реализация через автоматоны
Согласитесь, вторая конструкция выглядит более приятней, ведь так?
Если понадобится добавить в список что нибудь ещё? - Код без автоматонов превратится в огромный switch!
Если вы захотите перенести код сохранения данных домов в файл housedata.inc? - Вам придётся создавать доп. функцию и заносить её туда.
Конструкция выполненная с помощью автоматонов работает немного быстрей, чем большой switch.
Теория
- state
Метод state устанавливает для определённого типа состояние.
Например устанавливаем для data состояние houses:
Для условий с автоматонами есть сокращённое написание кода:
Выше код, тоже самое что и:
- entry
Для автоматонов зарезервирована функция entry(), которая вызывается при установке состояния.
Результатом будет:
Hello
,
World!
Функции
Или с несколькими:
^^^ Данная функция будет вызвана при состоянии one и two. ^^^
Или с любым другим состоянием:
^^^ Данная функция будет вызвана если не было вызвано ни одной функции со своим состоянием ^^^
Автор: ziggi
Источник:



Сообщений: 1 798
Регистрация:
Skype: amfy123

