值區塊是輸出連線的區塊。在以文字為基礎的語言中,這些函式的作用就像是運算式 (也就是運算式)。

如同 Blockly 中的所有區塊,值區塊可以透過定義區塊程式碼產生器,轉換成程式碼字串。

import {javascriptGenerator, Order} from 'blockly/javascript';

javascriptGenerator.forBlock['custom_block'] = function(block, generator) {
  // Collect argument strings.
  const fieldValue = block.getFieldValue('MY_FIELD');
  const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

  // Return code.
  return ['my code string', Order.NONE];
}

收集引數字串

所有區塊程式碼產生器都需要收集欄位值,並收集內部區塊的程式碼

// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');

// Collect inner block code strings.
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

如果您多次參照內部區塊的程式碼,則應在區塊中加入引數快取

傳回碼

值區塊程式碼產生器的傳回類型為「陣列」,其中第一個值是代碼字串,第二個值則優先。

return ['my code string', Order.NONE];

在區塊代碼字串前後加上括號時的優先順序。如要進一步瞭解如何在加入括號時控制是否加入括號,請參閱括號說明文件