ช่องตัวแปรจะเก็บสตริงเป็นค่า และสตริงเป็นข้อความ ค่าคือรหัสของตัวแปร ส่วนข้อความคือชื่อของตัวแปร
ช่องตัวแปร

ช่องตัวแปรที่มีตัวแก้ไขเปิดอยู่

ช่องตัวแปรในบล็อกที่ยุบ

การสร้างวิดีโอ
ไม่ได้ระบุประเภท
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');
}
};
ระบุประเภท
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');
}
};
ตัวสร้างตัวแปรจะรับชื่อตัวแปร ตัวตรวจสอบ ตัวเลือก อาร์เรย์ของประเภทตัวแปร และประเภทเริ่มต้น ตัวเลือก
- ชื่อตัวแปร ควรเป็นสตริง ซึ่งจะเป็นชื่อของตัวแปรเริ่มต้นที่ช่องเก็บไว้ หากเป็นค่า Null หรือไม่ได้กำหนด ระบบจะสร้างชื่อที่ไม่ซ้ำกัน
- ประเภทตัวแปร ควรเป็นอาร์เรย์ของสตริง ซึ่งจะบอกช่องว่าช่องสามารถเก็บตัวแปรประเภทใดได้ (เช่น ตัวแปรประเภทใดที่จะเพิ่มลงในเมนูแบบเลื่อนลง) หากเป็นค่า Null หรือไม่ได้กำหนด ระบบจะยอมรับตัวแปรทุกประเภท (และเพิ่มลงในเมนูแบบเลื่อนลง)
- ประเภทเริ่มต้น ควรเป็นสตริง ซึ่งจะใช้เมื่อสร้างโมเดลตัวแปรเริ่มต้นของช่อง หากมีการกำหนดค่านี้ ค่าดังกล่าวควรอยู่ในอาร์เรย์ประเภทตัวแปร หากเป็นค่า Null หรือไม่ได้กำหนด ค่านี้จะใช้ค่าเริ่มต้นเป็นสตริงว่าง ซึ่งหมายความว่าตัวแปรเริ่มต้นจะเป็นประเภทที่ยืดหยุ่น
→ ดูข้อมูลเพิ่มเติมเกี่ยวกับการพิมพ์อย่างเข้มงวดได้ที่ การตรวจสอบประเภท
การเรียงอันดับ
JSON
JSON สำหรับช่องตัวแปรจะมีลักษณะดังนี้
{
"fields": {
"FIELDNAME": {
"id": "QJD^+@[RVIwbLSZoDb:V"
}
}
}
โดยที่ FIELDNAME เป็นสตริงที่อ้างอิงช่องตัวแปร และค่าคือรหัสของตัวแปรที่ช่องอ้างอิง
หากใช้ช่องนี้ในกล่องเครื่องมือ คุณยังระบุชื่อและประเภท (ไม่บังคับ) ได้โดยตรง เนื่องจากจะไม่มีตัวแปรให้อ้างอิง
{
"fields": {
"FIELDNAME": {
"name": "my_variable",
"type": "string"
}
}
}
XML
XML สำหรับช่องตัวแปรจะมีลักษณะดังนี้
<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
- แอตทริบิวต์
nameของโหนดมีสตริงที่อ้างอิงช่องตัวแปร - แอตทริบิวต์
idของโหนดมีรหัสของตัวแปรที่ช่องอ้างอิง - แอตทริบิวต์
variabletypeของโหนดมีประเภทของตัวแปรvariabletypeเป็นไปตามกฎเดียวกับพารามิเตอร์ประเภทเริ่มต้นของตัวสร้าง - ข้อความภายในของโหนดคือชื่อของตัวแปร ค่าข้อความภายในเป็นไปตามกฎเดียวกับพารามิเตอร์ชื่อตัวแปรของตัวสร้าง
การสร้างตัวตรวจสอบตัวแปร
ค่าของช่องตัวแปรเป็นสตริง ดังนั้นตัวตรวจสอบทั้งหมดต้องยอมรับสตริงและแสดงผลเป็นสตริง null หรือ undefined
ต่อไปนี้เป็นตัวอย่างโปรแกรมตรวจสอบที่ยอมรับเฉพาะตัวแปรที่กำหนดไว้ล่วงหน้าบางรายการเป็นตัวเลือก ตัวแปรเหล่านี้จะต้องกำหนดด้วยฟังก์ชันเมื่อโหลดพื้นที่ทำงานWorkspace.getVariableMap().createVariable
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}
