大部分的欄位值都可以立即連結至程式碼字串。不過,部分欄位值需要額外處理才能使用。
字串
字串必須使用 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'
。使用方式取決於核取方塊的意義。例如,您可以在產生程式碼時使用它來進行分支。