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.