Valori

I blocchi di valori sono blocchi con connessioni di output. Agiscono da valori (ovvero espressioni) in un linguaggio testuale.

Come tutti i blocchi in Blockly, i blocchi di valori possono essere trasformati in stringhe di codice definindo un generatore di codici a blocchi.

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];
}

Raccogliere stringhe di argomenti

Tutti i generatori di codici a blocchi richiedono la raccolta dei valori dei campi e della raccolta del codice dei blocchi interni.

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

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

Se fai riferimento più volte al codice di un blocco interno, devi aggiungere la memorizzazione nella cache dell'argomento al blocco.

Codice di reso

Il tipo restituito di un generatore di codici a blocchi di valori è un array in cui il primo valore è una stringa di codice e il secondo ha una precedenza.

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

La precedenza controlla quando vengono aggiunte parentesi intorno alle stringhe di codice a blocchi. Consulta la documentazione relativa alle parentesi per ulteriori informazioni su come controllare il momento in cui vengono aggiunte le parentesi.