轉換欄位值

大部分的欄位值都可以立即連結至程式碼字串。不過,部分欄位值需要額外處理才能使用。

字串

字串必須使用 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'。使用方式取決於核取方塊的意義。例如,您可以在產生程式碼時使用它來進行分支。