Değişken alanları

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;
}