Większość wartości pól można od razu złączać z ciągiem kodu. Niektóre wartości pól wymagają jednak dodatkowej pracy, zanim będą mogły być używane.
Strings
Zanim można je złączać, ciągi tekstowe muszą być ujęte w cudzysłowie (quote_ lub multiline_quote_). Te funkcje wykonują kodowanie znaków w zależności od języka, np. zastępują ' wartością \' w 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'));
Zmienne
W przypadku pola wbudowanej zmiennej getFieldValue zwraca identyfikator zmiennej, a nie jej nazwę. Aby uzyskać rzeczywistą nazwę zmiennej, wywołaj funkcję getVariableName w generatorze kodu. Zwraca nazwę, która jest zarówno unikalna, jak i zgodna z zasadami. getVariableName:
- Konwertuje znaki inne niż ASCII na znaki ASCII. Jest to konieczne, ponieważ użytkownicy mogą wpisywać nazwy zmiennych w swoim języku. Na przykład konwertuje „
متغير” na „_D9_85_D8_AA_D8_BA_D9_8A_D8_B1”. - Sprawdzanie, czy nazwy zmiennych są zgodne z zasadami określonymi przez języki programowania.
Na przykład zamienia spacje na znaki podkreślenia i dodaje prefiks
my_do nazw zmiennych, które zaczynają się od cyfry. - Rozwiązuje konflikty z zarezerwowanymi słowami lub innymi nazwami zmiennych i funkcji.
Na przykład
forjest zamieniane nafor2.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));
Menu
W przypadku wbudowanego pola menu getFieldValue zwraca neutralny językowo ciąg znaków, który może nie nadawać się do bezpośredniego użycia w kodzie. Na przykład menu zawierające operatory porównania może zwracać 'EQUALS', 'LESS' lub 'GREATER'. Można go użyć do wyszukiwania ciągu tekstowego używanego w kodzie.
const OPERATORS = {
EQUALS: '==',
LESS: '<',
GREATER: '>',
};
const operator = OPERATORS[block.getFieldValue('OPERATOR')];
Pola wyboru
W przypadku wbudowanego pola wyboru getFieldValue zwraca wartość 'TRUE' lub 'FALSE'.
Sposób użycia tego pola zależy od jego znaczenia. Możesz go na przykład użyć do tworzenia gałęzi podczas generowania kodu.