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
for
jest 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.