Преобразование значений полей

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

Струны

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