Przekształcanie wartości pól

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 na for2.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

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.