變數欄位會將字串儲存為值,並將字串儲存為文字。 「值」是變數的 ID,而文字則是變數名稱。
變數欄位
開啟編輯器的變數欄位
收合區塊中的變數欄位
創作
未類型
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');
}
};
變數建構函式採用自選變數名稱,選用 驗證工具,選用變數陣列 以及選用的預設類型
- 「變數名稱」必須是字串。這會是 初始變數的值如果是空值或未定義不重複名稱 。
- 變數類型應為字串陣列。指出 欄位可以包含的變數類型 (也就是 。如果是空值或未定義,則所有變數類型都會 並新增至下拉式選單。
- 「預設類型」應為字串。這會用來建立 欄位中的初始變數模型如果已定義,則應包含 變數類型陣列中。如果是空值或未定義這個值,則預設值為 空白字串,表示初始變數的輸入方式會很靈活。
→ 如要進一步瞭解嚴格輸入方式,請參閱: 類型檢查。
序列化
JSON
變數欄位的 JSON 如下所示:
{
"fields": {
"FIELDNAME": {
"id": "QJD^+@[RVIwbLSZoDb:V"
}
}
}
其中 FIELDNAME
是參照變數欄位的字串,
值為欄位參照的變數 ID。
如果您在工具箱中使用這個欄位,也可以指定名稱 和 (選用) 類型,因為沒有可用的變數 參照。
{
"fields": {
"FIELDNAME": {
"name": "my_variable",
"type": "string"
}
}
}
XML
變數欄位的 XML 如下所示:
<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
- 節點的
name
屬性含有參照變數欄位的字串。 - 節點的
id
屬性包含欄位的變數 ID 參照。 - 節點的
variabletype
屬性包含變數類型。variabletype
遵循與建構函式預設類型參數相同的規則。 - 節點的內部文字是變數名稱。內部文字值 遵循與建構函式變數名稱參數相同的規則。
建立變數驗證工具
變數欄位的值是字串,因此所有驗證工具都必須接受字串,然後
會傳回字串、null
或 undefined
。
以下是驗證工具範例,只接受部分預先定義的變數 只要設定成「自動重新啟動」 和「在主機維護期間」選項即可這些變數需要使用 Workspace.createVariable 函式。
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}