वैरिएबल फ़ील्ड

वैरिएबल फ़ील्ड में कोई स्ट्रिंग, वैल्यू के तौर पर और स्ट्रिंग को टेक्स्ट के तौर पर सेव करती है. वैल्यू, एक वैरिएबल का आईडी होती है, जबकि टेक्स्ट किसी वैरिएबल का नाम होता है.

वैरिएबल फ़ील्ड

एडिटर खुले हुए वैरिएबल फ़ील्ड

छोटे किए गए ब्लॉक पर वैरिएबल फ़ील्ड

शॉर्ट वीडियो

टाइप नहीं किया गया

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

वैरिएबल कंस्ट्रक्टर में एक वैकल्पिक वैरिएबल नाम, एक वैकल्पिक validator, एक वैकल्पिक वैरिएबल, और एक वैकल्पिक डिफ़ॉल्ट टाइप की जानकारी होती है.

  • वैरिएबल का नाम एक स्ट्रिंग होना चाहिए. यह उस शुरुआती वैरिएबल का नाम होगा जो फ़ील्ड में है. अगर यह शून्य या तय नहीं है, तो एक यूनीक नाम जनरेट किया जाएगा.
  • वैरिएबल टाइप, स्ट्रिंग का एक कलेक्शन होना चाहिए. इससे फ़ील्ड को यह पता चलता है कि फ़ील्ड में किस तरह के वैरिएबल जोड़े जा सकते हैं यानी ड्रॉपडाउन में किस तरह के वैरिएबल जोड़े जाने चाहिए. अगर वैल्यू शून्य या तय नहीं है, तो सभी वैरिएबल टाइप स्वीकार किए जाएंगे और उन्हें ड्रॉपडाउन में जोड़ दिया जाएगा.
  • डिफ़ॉल्ट टाइप में कोई स्ट्रिंग होनी चाहिए. इसका इस्तेमाल, फ़ील्ड का शुरुआती वैरिएबल मॉडल बनाने के दौरान किया जाएगा. अगर यह तय किया गया है, तो इसे वैरिएबल टाइप कैटगरी में शामिल किया जाना चाहिए. अगर वैल्यू शून्य या तय नहीं है, तो डिफ़ॉल्ट रूप से यह खाली स्ट्रिंग हो जाती है. इसका मतलब है कि शुरुआती वैरिएबल सुविधाजनक तरीके से टाइप किया जाएगा.

→ सही से टाइप करने के बारे में ज़्यादा जानकारी के लिए, टाइप की जांच देखें.

सीरियलाइज़ेशन

JSON

वैरिएबल फ़ील्ड के लिए JSON, ऐसा दिखता है:

{
  "fields": {
    "FIELDNAME": {
      "id": "QJD^+@[RVIwbLSZoDb:V"
    }
  }
}

जहां FIELDNAME, वैरिएबल फ़ील्ड का रेफ़रंस देने वाली स्ट्रिंग है और वैल्यू, फ़ील्ड का रेफ़रंस देने वाले वैरिएबल का आईडी है.

अगर टूलबॉक्स में इस फ़ील्ड का इस्तेमाल किया जा रहा है, तो सीधे नाम और (ज़रूरी नहीं) टाइप भी बताया जा सकता है, क्योंकि रेफ़रंस के लिए कोई वैरिएबल उपलब्ध नहीं होगा.

{
  "fields": {
    "FIELDNAME": {
      "name": "my_variable",
      "type": "string"
    }
  }
}

XML

वैरिएबल फ़ील्ड के लिए एक्सएमएल ऐसा दिखता है:

<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
  • नोड के name एट्रिब्यूट में एक स्ट्रिंग है, जो किसी वैरिएबल फ़ील्ड का रेफ़रंस देती है.
  • नोड के id एट्रिब्यूट में फ़ील्ड रेफ़रंस वैरिएबल का आईडी होता है.
  • नोड के variabletype एट्रिब्यूट में वैरिएबल का टाइप शामिल होता है. variabletype, कंस्ट्रक्टर के डिफ़ॉल्ट टाइप पैरामीटर के समान नियमों का पालन करता है.
  • नोड का अंदरूनी टेक्स्ट वैरिएबल का नाम होता है. अंदरूनी टेक्स्ट वैल्यू, कंस्ट्रक्टर के वैरिएबल नाम पैरामीटर की तरह ही नियमों का पालन करती है.

वैरिएबल की पुष्टि करने वाला प्रोग्राम बनाना

वैरिएबल फ़ील्ड की वैल्यू एक स्ट्रिंग होती है. इसलिए, पुष्टि करने वाले सभी टूल को स्ट्रिंग स्वीकार करनी होगी और कोई स्ट्रिंग, null या undefined रिटर्न करनी होगी.

यहां पुष्टि करने वाले ऐसे प्रोग्राम का उदाहरण दिया गया है जो पहले से तय किए गए कुछ वैरिएबल को ही विकल्पों के तौर पर स्वीकार करता है. फ़ाइल फ़ोल्डर लोड होने पर, इन वैरिएबल को Workspace.createVariable फ़ंक्शन के साथ तय करना होगा.

function(newValue) {
  var validIds = ['Worf', 'Riker', 'Picard'];
  if (validIds.indexOf(newValue) == -1) {
    return null;
  }
  return newValue;
}