ช่องตัวแปร

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

ฟิลด์ตัวแปร

บล็อกที่มีป้ายกำกับ "ตัวแปร:" และฟิลด์เมนูแบบเลื่อนลงที่มี "x"
 เลือก

ฟิลด์ตัวแปรที่เปิดเครื่องมือแก้ไข

บล็อกเดียวกันโดยที่เมนูแบบเลื่อนลงเปิดอยู่ เมนูมีรายการ "x" "เปลี่ยนชื่อ
ตัวแปร..." และ "ลบตัวแปร "x"
"

ฟิลด์ตัวแปรในบล็อกที่ยุบ

บล็อกเดียวกันหลังจากยุบ โดยมีป้ายกำกับ "variable: x" และ
ขอบด้านขวาไม่สม่ำเสมอเพื่อแสดงว่า
ยุบอยู่

การสร้างวิดีโอ

ไม่ได้พิมพ์

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;
}

GIF แบบเคลื่อนไหวที่แสดงฟังก์ชันการตรวจสอบการทำงาน เมื่อเลือก &quot;Picard&quot; หรือ &quot;Riker&quot; จากเมนูแบบเลื่อนลง ระบบจะตั้งค่าเมนูแบบเลื่อนลงเป็นตัวเลือกนั้น เมื่อเลือก &quot;x&quot; ระบบจะตั้งค่าเมนูแบบเลื่อนลงเป็นตัวเลือกก่อนหน้า ซึ่งก็คือ &quot;Riker&quot;