Biến đổi giá trị trường

Hầu hết các giá trị trường đều sẵn sàng được nối vào chuỗi mã của bạn ngay lập tức. Tuy nhiên, một số giá trị trường cần thêm thao tác thì mới có thể sử dụng được.

Chuỗi

Bạn cần phải đặt chuỗi trong dấu ngoặc kép bằng quote_ hoặc multiline_quote_ thì mới có thể nối các chuỗi với nhau. Các hàm này thực hiện việc thoát ký tự theo ngôn ngữ cụ thể, chẳng hạn như thay thế ' bằng \' trong 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'));

Biến

Đối với trường biến tích hợp, getFieldValue trả về mã nhận dạng biến, chứ không phải tên biến. Để lấy tên biến thực tế, hãy gọi getVariableName trong trình tạo mã. Thao tác này sẽ trả về một tên vừa duy nhất vừa hợp pháp. Ngoài ra, getVariableName:

  • Chuyển đổi các ký tự không phải ASCII thành ASCII. Điều này là cần thiết vì người dùng có thể nhập tên biến bằng ngôn ngữ của họ. Ví dụ: hàm này chuyển đổi "متغير" thành "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1".
  • Đảm bảo tên biến tuân theo các quy tắc do ngôn ngữ lập trình đặt ra. Ví dụ: hàm này chuyển đổi dấu cách thành dấu gạch dưới và thêm tiền tố my_ vào tên biến bắt đầu bằng chữ số.
  • Giải quyết xung đột với các từ dành riêng hoặc tên biến hoặc hàm khác. Ví dụ: hàm này chuyển đổi for thành for2.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

Đối với trường thả xuống tích hợp, getFieldValue trả về một chuỗi trung lập về ngôn ngữ có thể không sử dụng được trực tiếp trong mã. Ví dụ: một trình đơn thả xuống chứa các toán tử so sánh có thể trả về 'EQUALS', 'LESS' hoặc 'GREATER'. Bạn có thể dùng hàm này để tra cứu một chuỗi được dùng trong mã.

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

Hộp kiểm

Đối với trường hộp đánh dấu tích hợp, getFieldValue trả về 'TRUE' hoặc 'FALSE'. Cách bạn sử dụng thuộc tính này phụ thuộc vào ý nghĩa của hộp đánh dấu. Ví dụ: bạn có thể sử dụng hàm này để phân nhánh trong khi tạo mã.