שדות משתנים

שדה משתנה שומר מחרוזת בתור הערך שלה, ומחרוזת בתור הטקסט שלה. הערך הוא מזהה של משתנה, והטקסט הוא השם של המשתנה.

שדה משתנה

שדה משתנה עם עורך פתוח

שדה משתנה בבלוק מכווץ

יצירה

ללא הקלדה

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 אופציונלי, מערך אופציונלי של סוגי משתנים וסוג ברירת מחדל אופציונלי.

  • שם המשתנה צריך להיות מחרוזת. זה יהיה השם של המשתנה הראשוני שמכיל את השדה. אם הערך הוא null או לא מוגדר, יווצר שם ייחודי.
  • סוגי המשתנים צריכים להיות מערך של מחרוזות. כך שדה זה יציין את סוגי המשתנים שהשדה יכול לכלול (כלומר, אילו סוגי משתנים צריך להוסיף לתפריט הנפתח). אם הערך הוא null או לא מוגדר, כל סוגי המשתנים יתקבלו (וייתווספו לתפריט הנפתח).
  • סוג ברירת המחדל צריך להיות מחרוזת. נשתמש בו במהלך יצירת מודל המשתנים הראשוני של השדה. אם זה מוגדר, הוא צריך להיכלל במערך סוגי המשתנים. אם הערך הוא null או לא מוגדר, ערך ברירת המחדל יהיה מחרוזת ריקה. כלומר, המשתנה הראשוני יוקלד באופן גמיש.

← למידע נוסף על הקלדה מחמירה, קראו את המאמר בדיקות סוג.

עריכה טורית

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 פועלת לפי אותם כללים שחלים על פרמטר סוג ברירת המחדל של ה-constructor.
  • הטקסט הפנימי של הצומת הוא שם המשתנה. ערך הטקסט הפנימי פועל לפי אותם כללים כמו פרמטר שם המשתנה של הבנאי.

יצירת מאמת משתנים

הערך של שדה משתנה הוא מחרוזת, ולכן כל מאמת צריך לקבל מחרוזת ולהחזיר מחרוזת, null או undefined.

לפניכם דוגמה למאמת שמקבל רק חלק מהמשתנים שהוגדרו מראש בתור אפשרויות. צריך להגדיר את המשתנים האלה באמצעות הפונקציה Workspace.createVariable במהלך הטעינה של סביבת העבודה.

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