转换字段值

大多数字段值都可以立即串联到代码字符串。不过,有些字段值需要您额外处理后才能使用。

字符串

字符串需要用 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 会返回变量 ID,而不是变量名称。如需获取实际变量名称,请在代码生成器中调用 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'。具体使用方法取决于复选框的含义。例如,您可以在生成代码时使用它进行分支。