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