Trường biến lưu trữ một chuỗi dưới dạng giá trị và một chuỗi làm văn bản. Chiến lược phát hành đĩa đơn giá trị là mã nhận dạng của một biến, trong khi văn bản là tên của biến.
Trường biến
Trường biến có trình chỉnh sửa đang mở
Trường biến trên khối đã thu gọn
dựa trên xu hướng
Chưa nhập
JSON
{
"type": "example_variable_untyped",
"message0": "variable: %1",
"args0": [
{
"type": "field_variable",
"name": "FIELDNAME",
"variable": "x"
}
]
}
JavaScript
Blockly.Blocks['example_variable_untyped'] = {
init: function() {
this.appendDummyInput()
.appendField('variable:')
.appendField(new Blockly.FieldVariable('x'), 'FIELDNAME');
}
};
Đã nhập
JSON
{
"type": "example_variable_typed",
"message0": "variable: %1",
"args0": [
{
"type": "field_variable",
"name": "FIELDNAME",
"variable": "x",
"variableTypes": ["Number", "String"],
"defaultType": "Number"
}
]
}
JavaScript
Blockly.Blocks['example_variable_typed'] = {
init: function() {
this.appendDummyInput()
.appendField('variable:')
.appendField(new Blockly.FieldVariable(
'X',
null,
['Number', 'String'],
'Number'
), 'FIELDNAME');
}
};
Hàm khởi tạo biến lấy một tên biến không bắt buộc, trình xác thực, một mảng biến tuỳ chọn và loại mặc định không bắt buộc.
- Tên biến phải là một chuỗi. Đây sẽ là tên của biến đầu tiên mà trường này lưu giữ. Nếu giá trị này là rỗng hoặc không xác định, một tên duy nhất sẽ được tạo.
- Loại biến phải là một mảng chuỗi. Thao tác này sẽ cho trường biết trường có thể chứa loại biến nào (ví dụ: loại biến nào thêm vào trình đơn thả xuống). Nếu giá trị này có giá trị rỗng hoặc không xác định, tất cả các loại biến sẽ được chấp nhận (và được thêm vào trình đơn thả xuống).
- Loại mặc định phải là một chuỗi. Thông tin này sẽ được sử dụng khi tạo mô hình biến ban đầu của trường. Nếu được xác định thì giá trị này phải được đưa vào. trong mảng loại biến. Nếu là giá trị rỗng hoặc không xác định, giá trị này sẽ mặc định thành một chuỗi trống, nghĩa là biến ban đầu sẽ được nhập một cách linh hoạt.
→ Để biết thêm thông tin về cách nhập nghiêm ngặt, hãy xem Kiểm tra loại.
Chuyển đổi tuần tự
JSON
JSON cho trường biến sẽ có dạng như sau:
{
"fields": {
"FIELDNAME": {
"id": "QJD^+@[RVIwbLSZoDb:V"
}
}
}
Trong đó FIELDNAME
là một chuỗi tham chiếu đến một trường biến và
giá trị là mã nhận dạng của biến mà trường tham chiếu đến.
Nếu đang sử dụng trường này trong hộp công cụ, bạn cũng có thể chỉ định tên và loại trực tiếp (không bắt buộc), vì sẽ không có biến nào cho tham chiếu.
{
"fields": {
"FIELDNAME": {
"name": "my_variable",
"type": "string"
}
}
}
XML
Mã XML cho một trường biến sẽ có dạng như sau:
<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
- Thuộc tính
name
của nút này chứa một chuỗi tham chiếu đến một trường biến. - Thuộc tính
id
của nút chứa mã nhận dạng của biến mà trường tài liệu tham khảo. - Thuộc tính
variabletype
của nút chứa loại biến. Chiến lược phát hành đĩa đơnvariabletype
tuân theo các quy tắc tương tự như tham số kiểu mặc định của hàm khởi tạo. - Văn bản bên trong của nút là tên của biến. Giá trị văn bản bên trong tuân theo các quy tắc giống như tham số tên biến của hàm khởi tạo.
Tạo trình xác thực biến
Giá trị của trường biến là một chuỗi, do đó mọi trình xác thực đều phải chấp nhận một chuỗi và
trả về một chuỗi, null
hoặc undefined
.
Dưới đây là ví dụ về trình xác thực chỉ chấp nhận một số biến được xác định trước dưới dạng . Bạn cần xác định các biến này bằng Workspace.createVariable khi không gian làm việc được tải.
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}