Kolom variabel

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

Kolom variabel

Blok dengan label "variable:" dan kolom dropdown dengan "x"
dipilih.

Kolom variabel dengan editor terbuka

Blok yang sama dengan dropdown terbuka. Menu ini memiliki item "x", "Ganti nama
variabel...", dan "Hapus variabel "x""

Kolom variabel pada blok yang diciutkan

Blok yang sama setelah diciutkan. Kolom ini memiliki label "variable: x" dan
tepi kanan yang tidak rata untuk menunjukkan bahwa kolom tersebut
ditutup.

yang Dipicu oleh Tren

Tanpa jenis

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

  • Nama variabel harus berupa string. Ini akan menjadi nama variabel awal yang disimpan kolom. Jika null atau belum ditentukan, nama unik akan dibuat.
  • Jenis variabel harus berupa array string. Hal ini memberi tahu kolom jenis variabel yang dapat disimpan oleh kolom (yaitu jenis variabel yang akan ditambahkan ke dropdown). Jika null atau tidak ditentukan, semua jenis variabel akan diterima (dan ditambahkan ke dropdown).
  • Jenis default harus berupa string. Ini akan digunakan saat membuat model variabel awal kolom. Jika ditentukan, jenis ini harus disertakan dalam array jenis variabel. Jika null atau undefined, nilai ini akan ditetapkan secara default ke string kosong, yang berarti variabel awal akan diberi jenis secara fleksibel.

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

Serialisasi

JSON

JSON untuk kolom variabel terlihat seperti ini:

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

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

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

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

XML

XML untuk kolom variabel terlihat seperti ini:

<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
  • Atribut name node berisi string yang mereferensikan 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 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 adalah contoh validator yang hanya menerima beberapa variabel yang telah ditentukan sebagai opsi. Variabel ini harus 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;
}

GIF animasi yang menunjukkan fungsi validasi saat bekerja. Saat &quot;Picard&quot; atau
&quot;Riker&quot; dipilih dari dropdown, dropdown akan ditetapkan ke pilihan tersebut. Saat
&quot;x&quot; dipilih, dropdown akan ditetapkan ke pilihan sebelumnya, yaitu
&quot;Riker&quot;.