大多数字段值都可以立即串联到代码字符串。不过,有些字段值需要您额外处理后才能使用。
字符串
字符串需要用 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'
。具体使用方法取决于复选框的含义。例如,您可以在生成代码时使用它进行分支。