یک فیلد متغیر، یک رشته را به عنوان مقدار و یک رشته را به عنوان متن ذخیره میکند. مقدار، شناسه یک متغیر است، در حالی که متن، نام یک متغیر است.
فیلد متغیر

فیلد متغیر با ویرایشگر باز

فیلد متغیر در بلوک فروریخته

خلقت
تایپ نشده
جیسون
{
"type": "example_variable_untyped",
"message0": "variable: %1",
"args0": [
{
"type": "field_variable",
"name": "FIELDNAME",
"variable": "x"
}
]
}
جاوا اسکریپت
Blockly.Blocks['example_variable_untyped'] = {
init: function() {
this.appendDummyInput()
.appendField('variable:')
.appendField(new Blockly.FieldVariable('x'), 'FIELDNAME');
}
};
تایپ شده
جیسون
{
"type": "example_variable_typed",
"message0": "variable: %1",
"args0": [
{
"type": "field_variable",
"name": "FIELDNAME",
"variable": "x",
"variableTypes": ["Number", "String"],
"defaultType": "Number"
}
]
}
جاوا اسکریپت
Blockly.Blocks['example_variable_typed'] = {
init: function() {
this.appendDummyInput()
.appendField('variable:')
.appendField(new Blockly.FieldVariable(
'X',
null,
['Number', 'String'],
'Number'
), 'FIELDNAME');
}
};
سازندهی متغیر، یک نام متغیر اختیاری، یک اعتبارسنج اختیاری، یک آرایهی اختیاری از انواع متغیرها و یک نوع پیشفرض اختیاری را دریافت میکند.
- نام متغیر باید یک رشته باشد. این نام، نام متغیر اولیهای خواهد بود که فیلد در خود نگه میدارد. اگر null یا undefined باشد، یک نام منحصر به فرد تولید میشود.
- نوع متغیرها باید آرایهای از رشتهها باشد. این به فیلد میگوید که چه نوع متغیرهایی را میتواند در خود نگه دارد (یعنی چه نوع متغیرهایی را به منوی کشویی اضافه کند). اگر تهی یا تعریف نشده باشد، همه انواع متغیرها پذیرفته میشوند (و به منوی کشویی اضافه میشوند).
- نوع پیشفرض باید یک رشته باشد. این نوع هنگام ایجاد مدل متغیر اولیه فیلد استفاده خواهد شد. اگر این نوع تعریف شده باشد، باید در آرایه انواع متغیرها گنجانده شود. اگر تهی یا تعریف نشده باشد، این مقدار به طور پیشفرض یک رشته خالی است، به این معنی که متغیر اولیه به صورت انعطافپذیر تایپ خواهد شد.
→ برای اطلاعات بیشتر در مورد تایپ دقیق، به بررسیهای نوع مراجعه کنید.
سریالسازی
جیسون
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;
}
