ช่องตัวแปร

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

ช่องตัวแปร

บล็อกที่มีป้ายกำกับ "ตัวแปร:" และฟิลด์เมนูแบบเลื่อนลงที่เลือก "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;