Kolom variabel menyimpan string sebagai nilainya, dan string sebagai teksnya. Nilainya adalah ID variabel, sedangkan teksnya 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, 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;
}