Değişken alanı, bir dizeyi değer olarak, bir dizeyi ise metni olarak depolar. Değer, değişkenin kimliğidir. Metin ise değişkenin adıdır.
Değişken alanı
Düzenleyici açık değişken alanı
Daraltılmış bloktaki değişken alanı
içerik üretimi
Yazılmamış
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');
}
};
Yazıldı
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');
}
};
Değişken oluşturucu; isteğe bağlı bir değişken adı, isteğe bağlı bir validator, isteğe bağlı bir değişken türleri dizisi ve isteğe bağlı bir varsayılan türü alır.
- Değişken adı bir dize olmalıdır. Bu, alanın içerdiği ilk değişkenin adı olacaktır. Boş veya tanımlanmamışsa benzersiz bir ad oluşturulur.
- Değişken türleri bir dize dizisi olmalıdır. Bu, alana, alanın ne tür değişkenleri barındırabileceğini (ör. açılır listeye ne tür değişkenlerin ekleneceğini) bildirir. Boş veya tanımsızsa tüm değişken türleri kabul edilir (ve açılır menüye eklenir).
- Varsayılan tür bir dize olmalıdır. Bu model, alanın ilk değişken modeli oluşturulurken kullanılır. Tanımlanırsa değişken türleri dizisine dahil edilmelidir. Boş veya tanımlanmamışsa bu değer varsayılan olarak boş bir dize olur. Bu, ilk değişkenin esnek bir şekilde yazılacağı anlamına gelir.
→ Katı şekilde yazma hakkında daha fazla bilgi için Tür Kontrolleri bölümüne bakın.
Serileştirme
JSON
Bir değişken alanı için JSON şöyle görünür:
{
"fields": {
"FIELDNAME": {
"id": "QJD^+@[RVIwbLSZoDb:V"
}
}
}
Burada FIELDNAME
, değişken alanına referans veren bir dizedir. Değer ise alanın başvuruda bulunduğu değişkenin kimliğidir.
Bu alanı araç kutusunda kullanıyorsanız, başvurulacak herhangi bir değişken olmayacağından, adı ve (isteğe bağlı) türü doğrudan da belirtebilirsiniz.
{
"fields": {
"FIELDNAME": {
"name": "my_variable",
"type": "string"
}
}
}
XML
Bir değişken alanı için XML şöyle görünür:
<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
- Düğümün
name
özelliği, değişken alanına referans veren bir dize içeriyor. - Düğümün
id
özelliği, alanın referans aldığı değişkenin kimliğini içerir. - Düğümün
variabletype
özelliği, değişkenin türünü içerir.variabletype
, oluşturucunun varsayılan tür parametresiyle aynı kuralları izler. - Düğümün iç metni, değişkenin adıdır. İç metin değeri, oluşturucunun değişken adı parametresiyle aynı kuralları izler.
Değişken doğrulayıcı oluşturma
Değişken alanının değeri bir dizedir. Bu nedenle, tüm doğrulayıcılar bir dizeyi kabul etmeli ve bir dize (null
veya undefined
) döndürmelidir.
Aşağıda, yalnızca önceden tanımlanmış bazı değişkenleri seçenek olarak kabul eden bir doğrulayıcı örneği verilmiştir. Çalışma alanı yüklendiğinde bu değişkenlerin Workspace.createVariable işleviyle tanımlanması gerekir.
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}