שדה משתנה שומר מחרוזת כערך שלו ומחרוזת כטקסט שלו. הערך הוא מזהה של משתנה, והטקסט הוא שם המשתנה.
שדה משתנה
שדה משתנה עם העורך פתוח
שדה משתנה בבלוק מכווץ
יצירה
ללא סיווג
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');
}
};
ה-constructor של המשתנה מקבל שם משתנה אופציונלי, מבצע אימות אופציונלי, מערך אופציונלי של סוגי משתנים וסוג ברירת מחדל אופציונלי.
- שם המשתנה צריך להיות מחרוזת. זה יהיה השם של המשתנה הראשוני ששדה מכיל. אם הוא null או לא מוגדר, ייווצר שם ייחודי.
- variable types צריך להיות מערך של מחרוזות. כך השדה יידע אילו סוגי משתנים הוא יכול להכיל (כלומר אילו סוגי משתנים צריך להוסיף לתפריט הנפתח). אם הערך הוא null או לא מוגדר, כל סוגי המשתנים יתקבלו (וייתווספו לתפריט הנפתח).
- סוג ברירת המחדל צריך להיות מחרוזת. המערכת תשתמש בו כשיוצרים את מודל המשתנה הראשוני של השדה. אם הוא מוגדר, צריך לכלול אותו במערך של סוגי המשתנים. אם הערך הוא null או undefined, הערך שמוגדר כברירת מחדל הוא מחרוזת ריקה, כלומר סוג המשתנה הראשוני יהיה גמיש.
→ מידע נוסף על סיווג קפדני זמין במאמר בדיקות סוגים.
סידור הפרקים
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. - הטקסט הפנימי של הצומת הוא שם המשתנה. ערך הטקסט הפנימי פועל לפי אותם כללים כמו הפרמטר של שם המשתנה של ה-constructor.
יצירת מאמת משתנה
הערך של שדה משתנה הוא מחרוזת, ולכן כל מאמתים חייבים לקבל מחרוזת ולהחזיר מחרוזת, null
או undefined
.
זוהי דוגמה לאימות שמקבל רק משתנים מוגדרים מראש כאפשרויות. צריך להגדיר את המשתנים האלה באמצעות הפונקציה Workspace.createVariable כשסביבת העבודה נטענת.
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}