Pole zmiennej przechowuje ciąg znaków jako jego wartość i ciąg znaków jako jego tekst. jest identyfikatorem zmiennej, a tekst to nazwa zmiennej.
Pole zmiennej
Pole zmiennej z otwartym edytorem
Pole zmiennej w zwiniętym bloku
na podstawie trendów
Niewpisany
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');
}
};
Wpisany
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');
}
};
Konstruktor zmiennych przyjmuje opcjonalną nazwę zmiennej, opcjonalnie verify, opcjonalna tablica zmiennej typu i opcjonalnym typem domyślnym.
- Nazwa zmiennej powinna być ciągiem znaków. To będzie nazwa dla pierwszej zmiennej przechowywanej w tym polu. Jeśli ma wartość null lub jest niezdefiniowana, unikalna nazwa .
- Typy zmiennych powinny być tablicą ciągów znaków. Informuje to pole typów zmiennych, jakie może zawierać pole (tj. jakiego typu zmiennych można dodaj do menu). Jeśli ma wartość null lub jest niezdefiniowany, wszystkie typy zmiennych zostać zaakceptowane (i dodane do menu).
- Typ domyślny powinien być ciągiem znaków. Użyjemy go podczas tworzenia początkowym modelu zmiennych pola. Jeśli jest zdefiniowane, powinno być uwzględnione w tablicy typów zmiennych. Jeśli ma wartość null lub jest niezdefiniowana, ta wartość jest domyślna do pustego ciągu, co oznacza, że zmienną początkową będzie można wpisać elastycznie.
→ Więcej informacji o rygorystycznym pisaniu znajdziesz tutaj: Sprawdzanie typu.
Serializacja
JSON
Kod JSON pola zmiennej wygląda tak:
{
"fields": {
"FIELDNAME": {
"id": "QJD^+@[RVIwbLSZoDb:V"
}
}
}
Gdzie FIELDNAME
to ciąg znaków odnoszący się do pola zmiennej,
wartość to identyfikator zmiennej, do której odwołuje się pole.
Jeśli używasz tego pola w przyborniku, możesz też podać nazwę i (opcjonalnie) wpisać bezpośrednio, ponieważ zmienna nie będzie dostępna dla odwołania.
{
"fields": {
"FIELDNAME": {
"name": "my_variable",
"type": "string"
}
}
}
XML
Kod XML pola zmiennej wygląda tak:
<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
- Atrybut
name
węzła zawiera ciąg odnoszący się do pola zmiennej. - Atrybut
id
węzła zawiera identyfikator zmiennej zawartej w polu odwołania. - Atrybut
variabletype
węzła zawiera typ zmiennej. Funkcjavariabletype
podlega tym samym regułom co domyślny parametr typu konstruktora. - Wewnętrzny tekst węzła to nazwa zmiennej. Wewnętrzna wartość tekstowa ma te same reguły co parametr nazwy zmiennej konstruktora.
Tworzenie walidatora zmiennych
Wartość pola zmiennej jest ciągiem znaków, więc wszyscy weryfikatorzy muszą zaakceptować ciąg znaków i
zwraca ciąg znaków, null
lub undefined
.
Oto przykład walidatora, który akceptuje tylko niektóre wstępnie zdefiniowane zmienne jako: . Zmienne te należy zdefiniować za pomocą parametru Workspace.createVariable po wczytaniu obszaru roboczego.
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}