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

একটি ভেরিয়েবল ফিল্ড তার ভ্যালু হিসেবে একটি স্ট্রিং এবং টেক্সট হিসেবে একটি স্ট্রিং সংরক্ষণ করে। ভ্যালুটি হলো একটি ভেরিয়েবলের আইডি, আর টেক্সটটি হলো ভেরিয়েবলটির নাম।

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

"variable:" লেবেলযুক্ত একটি ব্লক এবং একটি ড্রপডাউন ফিল্ড যেখানে "x" নির্বাচিত।

এডিটর খোলা সহ পরিবর্তনশীল ক্ষেত্র

ড্রপডাউন খোলা থাকা একই ব্লক। মেনুটিতে 'x', 'Rename variable...' এবং 'Delete the "x" variable' আইটেমগুলো রয়েছে।

সংকুচিত ব্লকে পরিবর্তনশীল ক্ষেত্র

ভেঙে যাওয়ার পর একই ব্লক। এতে "variable: x" লেবেলটি রয়েছে এবং এটি যে ভেঙে গেছে তা দেখানোর জন্য এর ডান প্রান্তটি খাঁজকাটা।

সৃষ্টি

টাইপবিহীন

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

ভেরিয়েবল কনস্ট্রাক্টরটি একটি ঐচ্ছিক ভেরিয়েবলের নাম, একটি ঐচ্ছিক ভ্যালিডেটর , ভেরিয়েবলের প্রকারের একটি ঐচ্ছিক অ্যারে এবং একটি ঐচ্ছিক ডিফল্ট টাইপ গ্রহণ করে।

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

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

ক্রমিকীকরণ

JSON

একটি ভেরিয়েবল ফিল্ডের JSON দেখতে এইরকম:

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

যেখানে FIELDNAME হলো একটি স্ট্রিং যা একটি ভেরিয়েবল ফিল্ডকে নির্দেশ করে, এবং value হলো সেই ভেরিয়েবলের ID যাকে ফিল্ডটি নির্দেশ করে।

আপনি যদি টুলবক্সে এই ফিল্ডটি ব্যবহার করেন, তাহলে সরাসরি নাম এবং (ঐচ্ছিক) টাইপও নির্দিষ্ট করে দিতে পারেন, কারণ রেফারেন্স করার জন্য কোনো ভ্যারিয়েবল থাকবে না।

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

এক্সএমএল

একটি ভেরিয়েবল ফিল্ডের XML দেখতে এইরকম:

<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
  • নোডটির name অ্যাট্রিবিউটে একটি স্ট্রিং থাকে যা একটি ভেরিয়েবল ফিল্ডকে নির্দেশ করে।
  • নোডটির id অ্যাট্রিবিউটে সেই ভেরিয়েবলের আইডি থাকে, যেটিকে ফিল্ডটি নির্দেশ করে।
  • নোডের ` variabletype অ্যাট্রিবিউটে ভেরিয়েবলের টাইপ থাকে। ` variabletype কনস্ট্রাক্টরের `default type` প্যারামিটারের মতোই একই নিয়ম অনুসরণ করে।
  • নোডটির ইনার টেক্সট হলো ভেরিয়েবলের নাম। ইনার টেক্সটের মান কনস্ট্রাক্টরের ভেরিয়েবল নেম প্যারামিটারের মতোই একই নিয়ম অনুসরণ করে।

ভেরিয়েবল ভ্যালিডেটর তৈরি করা

একটি ভেরিয়েবল ফিল্ডের মান একটি স্ট্রিং হয়, তাই যেকোনো ভ্যালিডেটরকে অবশ্যই একটি স্ট্রিং গ্রহণ করতে হবে এবং একটি স্ট্রিং, null বা undefined রিটার্ন করতে হবে।

এখানে এমন একটি ভ্যালিডেটরের উদাহরণ দেওয়া হলো যা অপশন হিসেবে শুধুমাত্র কিছু পূর্বনির্ধারিত ভেরিয়েবল গ্রহণ করে। ওয়ার্কস্পেস লোড করার সময় Workspace.getVariableMap().createVariable ফাংশন ব্যবহার করে এই ভেরিয়েবলগুলো সংজ্ঞায়িত করতে হবে।

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

একটি অ্যানিমেটেড GIF-এ ভ্যালিডেশন ফাংশনটির কার্যকারিতা দেখানো হচ্ছে।  যখন ড্রপডাউন থেকে "Picard" বা "Riker" বেছে নেওয়া হয়, তখন ড্রপডাউনটি সেই বিকল্পে সেট হয়ে যায়।  যখন "x" বেছে নেওয়া হয়, তখন ড্রপডাউনটি পূর্ববর্তী বিকল্পে, অর্থাৎ "Riker"-এ সেট হয়ে যায়।