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

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

الحقل المتغيّر

مربّع يحمل التصنيف "المتغير:" وحقل قائمة منسدلة تم اختيار "x" فيه

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

الحظر نفسه مع فتح القائمة المنسدلة تحتوي القائمة على العناصر "x" و"إعادة تسمية
المتغير..." و"حذف المتغير
x".

حقل متغير في مربّع مصغّر

المربّع نفسه بعد تصغيره يحتوي على التصنيف "المتغير: 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');
  }
};

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

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

→ لمزيد من المعلومات حول الكتابة الصارمة، راجِع عمليات التحقّق من النوع.

نشر الحلقات على نحو متسلسِل

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;بيكار&quot; أو &quot;رايكر&quot; من القائمة المنسدلة، يتم ضبط القائمة المنسدلة على هذا الخيار. عند اختيار &quot;x&quot;، يتم ضبط القائمة المنسدلة على الخيار السابق، وهو &quot;Riker&quot;.