الحقول المتغيرة

يُخزن حقل المتغير سلسلة كقيمتها وسلسلة كنص لها. تشير رسالة الأشكال البيانية عبارة عن معرف لمتغير، بينما النص هو اسم المتغير.

حقل المتغيّر

حقل المتغيّر مع فتح المحرِّر

حقل المتغيّر على جزء صغير

الإنشاء

لم تتم الكتابة

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

تأخذ الدالة الإنشائية المتغيرة اسم متغير اختياري، وهو اسم اختياري مدقق، صفيف متغيّر اختياري ونوع افتراضي اختياري.

  • يجب أن يكون اسم المتغيّر سلسلة. سيكون هذا اسم المتغير الأولي الذي يحمله الحقل. اسم فريد إذا كان صفرًا أو غير معرَّف سيتم إنشاء النموذج الجديد.
  • يجب أن تكون أنواع المتغيّرات مصفوفة من السلاسل. هذا يخبر المجال أنواع المتغيرات التي يمكن أن يحتوي عليها الحقل (أي أنواع المتغيرات إضافتها إلى القائمة المنسدلة). وإذا كانت قيمة فارغة أو غير محددة، فستتغير جميع أنواع المتغيرات قبولها (وإضافتها إلى القائمة المنسدلة).
  • يجب أن يكون النوع التلقائي سلسلة. وسيتم استخدام ذلك عند إنشاء نموذج المتغير الأولي للحقل. إذا تم تحديد ذلك، فيجب تضمينه في صفيفة أنواع المتغيرات. إذا كانت فارغة أو غير معرَّفة، تكون هذه القيمة تلقائية إلى سلسلة فارغة، ما يعني أنّه ستتم كتابة المتغير الأولي بمرونة.

→ لمزيد من المعلومات حول الكتابة المتشددة، راجع عمليات التحقّق من الأنواع:

التسلسل

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.createVariable عند تحميل مساحة العمل.

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