Большинство значений полей готовы к немедленному объединению со строкой кода. Однако некоторые значения полей требуют дополнительной обработки, прежде чем их можно будет использовать.
Струны
Строки необходимо заключить в кавычки с помощью quote_ или multiline_quote_ прежде чем их можно будет объединить. Эти функции выполняют экранирование символов, зависящее от языка, например, замену ' на \' в JavaScript.
// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));
// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));
Переменные
Для встроенного поля переменной getFieldValue возвращает идентификатор переменной, а не имя переменной. Чтобы получить фактическое имя переменной, вызовите getVariableName в генераторе кода. Это возвращает имя, которое является одновременно уникальным и допустимым. Помимо прочего, getVariableName :
- Преобразует символы, отличные от ASCII, в ASCII. Это необходимо, поскольку пользователи могут вводить имена переменных на своем родном языке. Например, он преобразует "
متغير" в "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1". - Гарантирует, что имена переменных соответствуют правилам, установленным языками программирования. Например, он преобразует пробелы в символы подчеркивания и добавляет префикс
my_к именам переменных, начинающимся с цифры. - Устраняет конфликты с зарезервированными словами или другими именами переменных или функций. Например, он преобразует
forвfor2.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));
Выпадающие списки
Для встроенного раскрывающегося поля getFieldValue возвращает независимую от языка строку, которую нельзя напрямую использовать в коде. Например, раскрывающийся список, содержащий операторы сравнения, может возвращать 'EQUALS' , 'LESS' или 'GREATER' . Это можно использовать для поиска строки, которая используется в коде.
const OPERATORS = {
EQUALS: '==',
LESS: '<',
GREATER: '>',
};
const operator = OPERATORS[block.getFieldValue('OPERATOR')];
Флажки
Для встроенного поля флажка getFieldValue возвращает 'TRUE' или 'FALSE' . Как вы это используете, зависит от значения флажка. Например, вы можете использовать его для ветвления при создании кода.