Большинство значений полей готовы к немедленному объединению со строкой кода. Однако некоторые значения полей требуют дополнительной обработки, прежде чем их можно будет использовать.
Струны
Строки необходимо заключить в кавычки с помощью 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'
. Как вы это используете, зависит от значения флажка. Например, вы можете использовать его для ветвления при создании кода.