পরিবর্তনশীল ক্ষেত্র

একটি পরিবর্তনশীল ক্ষেত্র একটি স্ট্রিংকে তার মান হিসাবে এবং একটি স্ট্রিং এর পাঠ্য হিসাবে সংরক্ষণ করে। মান হল একটি ভেরিয়েবলের একটি আইডি, যখন টেক্সটটি একটি ভেরিয়েবলের নাম।

পরিবর্তনশীল ক্ষেত্র

সম্পাদক খোলা সহ পরিবর্তনশীল ক্ষেত্র

ভেঙে যাওয়া ব্লকে পরিবর্তনশীল ক্ষেত্র

সৃষ্টি

টাইপ করা হয়নি

JSON

{
  "type": "example_variable_untyped",
  "message0": "variable: %1",
  "args0": [
    {
      "type": "field_variable",
      "name": "FIELDNAME",
      "variable": "x"
    }
  ]
}

জাভাস্ক্রিপ্ট

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"
    }
  ]
}

জাভাস্ক্রিপ্ট

Blockly.Blocks['example_variable_typed'] = {
  init: function() {
    this.appendDummyInput()
      .appendField('variable:')
      .appendField(new Blockly.FieldVariable(
          'X',
          null,
          ['Number', 'String'],
          'Number'
      ), 'FIELDNAME');
  }
};

ভেরিয়েবল কনস্ট্রাক্টর একটি ঐচ্ছিক ভেরিয়েবল নাম, একটি ঐচ্ছিক যাচাইকারী , পরিবর্তনশীল প্রকারের একটি ঐচ্ছিক বিন্যাস এবং একটি ঐচ্ছিক ডিফল্ট টাইপ নেয়।

  • পরিবর্তনশীল নাম একটি স্ট্রিং হওয়া উচিত. এটি ক্ষেত্রের ধারণ করা প্রাথমিক ভেরিয়েবলের নাম হবে। এটি নাল বা অনির্ধারিত হলে একটি অনন্য নাম তৈরি করা হবে।
  • পরিবর্তনশীল প্রকারগুলি স্ট্রিংগুলির একটি অ্যারে হওয়া উচিত। এটি ক্ষেত্রকে বলে যে ক্ষেত্রটি কী ধরণের ভেরিয়েবল ধরে রাখতে পারে (অর্থাৎ ড্রপডাউনে কী ধরণের ভেরিয়েবল যুক্ত করতে হবে)। যদি এটি নাল বা অনির্ধারিত হয়, তবে সমস্ত পরিবর্তনশীল প্রকার গ্রহণ করা হবে (এবং ড্রপডাউনে যোগ করা হবে)।
  • ডিফল্ট প্রকার একটি স্ট্রিং হওয়া উচিত। ক্ষেত্রের প্রাথমিক পরিবর্তনশীল মডেল তৈরি করার সময় এটি ব্যবহার করা হবে। যদি এটি সংজ্ঞায়িত করা হয় তবে এটি পরিবর্তনশীল প্রকারের অ্যারেতে অন্তর্ভুক্ত করা উচিত। যদি এটি নাল বা অনির্ধারিত হয় তবে এই মানটি একটি খালি স্ট্রিং-এ ডিফল্ট হয়, যার অর্থ প্রাথমিক পরিবর্তনশীলটি নমনীয়ভাবে টাইপ করা হবে।

→ কঠোর টাইপিং সম্পর্কে আরও তথ্যের জন্য, টাইপ চেক দেখুন।

সিরিয়ালাইজেশন

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