שדות משתנים

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

שדה משתנה

בלוק עם התווית 'משתנה:' ושדה נפתח עם האפשרות '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');
  }
};

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

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

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

הערך של שדה משתנה הוא מחרוזת, ולכן כל אמצעי האימות צריכים לקבל מחרוזת ולהחזיר מחרוזת, 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.