Kolom variabel

Kolom variabel menyimpan string sebagai nilainya, dan string sebagai teksnya. Nilainya adalah ID variabel, sedangkan teks adalah nama variabel.

Kolom variabel

Kolom variabel dengan editor terbuka

Kolom variabel di blok yang diciutkan

yang Dipicu oleh Tren

{i>Untyped<i}

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

Berjenis

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 variabel menggunakan nama variabel opsional, validator opsional, array opsional jenis variabel, dan jenis default opsional.

  • Nama variabel harus berupa string. Ini akan menjadi nama variabel awal yang disimpan {i>field<i}. Jika null atau belum ditentukan, nama unik akan dibuat.
  • Jenis variabel harus berupa array string. Atribut ini memberi tahu kolom jenis variabel yang dapat disimpan kolom (yaitu jenis variabel yang akan ditambahkan ke dropdown). Jika nilainya null atau belum ditentukan, semua jenis variabel akan diterima (dan ditambahkan ke dropdown).
  • Jenis default harus berupa string. Model ini akan digunakan saat membuat model variabel awal kolom. Jika ditentukan, ini harus disertakan dalam array jenis variabel. Jika null atau tidak ditentukan, nilai ini ditetapkan secara default ke string kosong, yang berarti variabel awal akan diketik secara fleksibel.

→ Untuk informasi selengkapnya tentang pengetikan ketat, lihat Pemeriksaan Jenis.

Serialisasi

JSON

JSON untuk kolom variabel terlihat seperti berikut:

{
  "fields": {
    "FIELDNAME": {
      "id": "QJD^+@[RVIwbLSZoDb:V"
    }
  }
}

Dengan FIELDNAME adalah string yang merujuk ke kolom variabel, dan nilainya adalah ID variabel yang dirujuk kolom.

Jika menggunakan kolom ini dalam toolbox, Anda juga dapat menentukan nama dan jenis (opsional) secara langsung karena tidak akan ada variabel yang tersedia untuk direferensikan.

{
  "fields": {
    "FIELDNAME": {
      "name": "my_variable",
      "type": "string"
    }
  }
}

XML

XML untuk kolom variabel terlihat seperti berikut:

<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
  • Atribut name node berisi string yang merujuk ke kolom variabel.
  • Atribut id node berisi ID variabel yang dirujuk kolom.
  • Atribut variabletype node berisi jenis variabel. variabletype mengikuti aturan yang sama dengan parameter jenis default konstruktor.
  • Teks dalam node adalah nama variabel. Nilai teks bagian dalam mengikuti aturan yang sama dengan parameter nama variabel konstruktor.

Membuat validator variabel

Nilai kolom variabel adalah string, sehingga setiap validator harus menerima string dan menampilkan string, null, atau undefined.

Berikut ini contoh validator yang hanya menerima beberapa variabel yang telah ditetapkan sebagai opsi. Variabel ini perlu ditentukan dengan fungsi Workspace.createVariable saat ruang kerja dimuat.

function(newValue) {
  var validIds = ['Worf', 'Riker', 'Picard'];
  if (validIds.indexOf(newValue) == -1) {
    return null;
  }
  return newValue;
}