Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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.conststr=generator.quote_(block.getFieldValue('STR'));// For a multiline text field.conststr=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.
Đố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ã.
Đố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ã.
[null,null,["Cập nhật lần gần đây nhất: 2025-07-25 UTC."],[[["\u003cp\u003eFields in Blockly define user-editable values (strings, numbers, colors, etc.) for code generation.\u003c/p\u003e\n"],["\u003cp\u003eAccess field values using \u003ccode\u003egetFieldValue\u003c/code\u003e, transform them into usable strings (e.g., quoting strings, scrubbing variable names), and concatenate them into the code.\u003c/p\u003e\n"],["\u003cp\u003eUse \u003ccode\u003equote_\u003c/code\u003e or \u003ccode\u003emultiline_quote_\u003c/code\u003e to properly format string values for code generation.\u003c/p\u003e\n"],["\u003cp\u003eUse \u003ccode\u003egetVariableName\u003c/code\u003e to ensure variable names are valid and avoid conflicts in the generated code.\u003c/p\u003e\n"],["\u003cp\u003eRefer to specific block type documentation for details on returning the generated code.\u003c/p\u003e\n"]]],["Code generation with fields involves retrieving user-inputted values, such as strings or numbers, from fields. `getFieldValue` accesses these values, which vary by field type. Strings need quoting via `quote_` or `multiline_quote_`, while variables require scrubbing with `getVariableName` to ensure they are ASCII and don't clash with reserved words. Finally, the processed field value is inserted into the code string. The completed code string is returned depending on the specific type of block.\n"],null,["# Transform field values\n\nMost field values are ready to be concatenated to your code string immediately.\nHowever, some field values require extra work before they are usable.\n\nStrings\n-------\n\nStrings need to be quoted with either `quote_` or `multiline_quote_` before they\ncan be concatenated. These functions perform language-specific character\nescaping, such as replacing `'` with `\\'` in JavaScript. \n\n // For a single line text field.\n const str = generator.quote_(block.getFieldValue('STR'));\n\n // For a multiline text field.\n const str = generator.multiline_quote_(block.getFieldValue('STR'));\n\n| **Note:** the `quote_` and `multiline_quote_` methods follow an earlier naming convention with underscores, but they are public.\n\nVariables\n---------\n\nFor the built-in variable field, `getFieldValue` returns a variable ID, not a\nvariable name. To get an actual variable name, call `getVariableName` in the\ncode generator. This returns a name that is both unique and legal. Among other\nthings, `getVariableName`:\n\n- Converts the non-ASCII characters to ASCII. This is necessary because users can enter variable names in their own language. For example, it converts \"`متغير`\" to \"`_D9_85_D8_AA_D8_BA_D9_8A_D8_B1`\".\n- Ensures variable names follow the rules set forth by programming languages. For example, it converts spaces to underscores and adds the prefix `my_` to variable names that start with a digit.\n- Resolves conflicts with reserved words or other variable or function names. For example, it converts `for` to `for2`.\n\n const identifier = generator.getVariableName(block.getFieldValue('VAR'));\n\nDropdowns\n---------\n\nFor the built-in dropdown field, `getFieldValue` returns a language-neutral\nstring that might not be directly usable in code. For example, a dropdown\ncontaining comparison operators might return `'EQUALS'`, `'LESS'`, or\n`'GREATER'`. This can be used to look up a string that is used in code. \n\n const OPERATORS = {\n EQUALS: '==',\n LESS: '\u003c',\n GREATER: '\u003e',\n };\n const operator = OPERATORS[block.getFieldValue('OPERATOR')];\n\nCheckboxes\n----------\n\nFor the built-in checkbox field, `getFieldValue` returns `'TRUE'` or `'FALSE'`.\nHow you use this depends on the meaning of the checkbox. For example, you might\nuse it for branching while generating code."]]