Kolom variabel menyimpan string sebagai nilainya, dan string sebagai teksnya. Tujuan nilai adalah ID variabel, sedangkan teks adalah nama variabel.
Kolom variabel
Kolom variabel dengan editor terbuka
Kolom variabel pada blok yang diciutkan
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, sebuah atribut validator, array variabel opsional dan jenis default opsional.
- Nama variabel harus berupa string. Ini akan menjadi nama variabel awal yang disimpan di kolom. Jika null atau nama unik tidak ditentukan akan dibuat.
- Jenis variabel harus berupa array string. Ini memberi tahu kolom jenis variabel apa yang dapat ditampung {i>field<i} (yaitu jenis variabel apa yang tambahkan ke {i>dropdown<i}). Jika {i>null <i}atau {i>undefined<i}, semua jenis variabel akan diterima (dan ditambahkan ke menu dropdown).
- Jenis default harus berupa string. Ini akan digunakan saat membuat variabel awal kolom. Jika hal ini didefinisikan, kolom ini harus disertakan dalam array jenis variabel. Jika null atau tidak ditentukan, nilai ini akan menjadi default menjadi string kosong, yang berarti variabel awal akan diketik secara fleksibel.
→ Untuk mengetahui informasi selengkapnya tentang pengetikan ketat, lihat Pemeriksaan Jenis.
Serialisasi
JSON
JSON untuk kolom variabel akan terlihat seperti ini:
{
"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 bidang ini di toolbox, Anda juga dapat menentukan nama dan (opsional) mengetik secara langsung, karena tidak akan ada variabel yang tersedia untuk alamat IP internal.
{
"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 merujuk ke kolom variabel. - Atribut
id
node berisi ID variabel kolom referensi. - Atribut
variabletype
node berisi jenis variabel. Tujuanvariabletype
mengikuti aturan yang sama seperti parameter jenis default konstruktor. - Teks dalam node adalah nama variabel. Nilai teks bagian dalam mengikuti aturan yang sama seperti parameter nama variabel konstruktor.
Membuat validator variabel
Nilai kolom variabel berupa string, jadi setiap validator harus menerima string dan
menampilkan string, null
, atau undefined
.
Berikut adalah contoh validator yang hanya menerima beberapa variabel yang telah ditentukan sebagai lainnya. Variabel-variabel ini perlu ditentukan dengan Workspace.createVariable saat ruang kerja dimuat.
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}