Trasforma i valori dei campi

La maggior parte dei valori di campo è pronta per essere concatenata immediatamente alla stringa di codice. Tuttavia, alcuni valori di campo richiedono un lavoro aggiuntivo prima di essere utilizzabili.

Stringa

Le stringhe devono essere racchiuse tra virgolette con quote_ o multiline_quote_ prima di poter essere concatenate. Queste funzioni eseguono la codifica dei caratteri specifica per la lingua, ad esempio sostituiscono ' con \' in 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'));

Variabili

Per il campo della variabile integrata, getFieldValue restituisce un ID variabile, non un nome variabile. Per ottenere un nome di variabile effettivo, chiama getVariableName nel generatore di codice. Verrà restituito un nome univoco e valido. Tra le altre cose, getVariableName:

  • Converte i caratteri non ASCII in ASCII. Questo è necessario perché gli utenti possono inserire i nomi delle variabili nella propria lingua. Ad esempio, trasforma "متغير" in "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1".
  • Garantisce che i nomi delle variabili rispettino le regole stabilite dai linguaggi di programmazione. Ad esempio, converte gli spazi in trattini bassi e aggiunge il prefisso my_ ai nomi delle variabili che iniziano con una cifra.
  • Risolve i conflitti con parole riservate o altri nomi di variabili o funzioni. Ad esempio, converte for in for2.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

Per il campo del menu a discesa integrato, getFieldValue restituisce una stringa indipendente dalla lingua che potrebbe non essere direttamente utilizzabile nel codice. Ad esempio, un menu a discesa contenente operatori di confronto potrebbe restituire 'EQUALS', 'LESS' o 'GREATER'. Può essere utilizzato per cercare una stringa utilizzata nel codice.

const OPERATORS = {
  EQUALS: '==',
  LESS: '<',
  GREATER: '>',
};
const operator = OPERATORS[block.getFieldValue('OPERATOR')];

Caselle di controllo

Per il campo della casella di controllo integrata, getFieldValue restituisce 'TRUE' o 'FALSE'. La modalità di utilizzo dipende dal significato della casella di controllo. Ad esempio, potresti usarlo per i rami durante la generazione del codice.