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

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

حقل المتغير

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

حقل المتغيّر على كتلة مصغّرة

إنشاء الفيديوهات

غير مكتوب

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

يبدو نموذج 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;
}