Struct
Termasuk bagian Dasar-Dasar dalam perjalanan Solidity di Coddy. Pelajaran 43 dari 53.
struct mengelompokkan field yang saling berkaitan dengan nama tipe khusus. Setiap field memiliki tipe dan nama, dan field dapat memiliki tipe yang berbeda. Deklarasikan tipe tersebut pada cakupan kontrak, buat sebuah nilai, lalu akses field-nya dengan titik.
Deklarasikan ini pada cakupan kontrak:
struct Parcel { uint256 weight; bool ready; }Gunakan ini di dalam fungsi main yang disediakan:
Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);Tipe Parcel memiliki field weight dan ready. Konstruktor posisional memberikan nilai sesuai urutan deklarasi. Item ini berada di memori selama pemanggilan saat ini; mendeklarasikan tipe struct saja tidak membuat record tersimpan.
Gunakan titik yang diikuti nama field untuk membaca atau mengubah field struct.
Tantangan
MudahDeklarasikan sebuah struct bernama Badge dengan uint256 level dan bool active, dalam urutan tersebut. Buat Badge di memory dari input yang diberikan dan cetak kedua field.
Pengujian memberikan argumen kepada main dalam urutan ini: uint256 level, bool active. Setiap pengujian dimulai dengan state contract yang baru.
Gunakan console.log untuk output yang diminta. Cetak hanya nilai yang diminta, satu per baris, tanpa label tambahan kecuali jika tugas memintanya.
Coba sendiri
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 level, bool active) external view {
// Tulis solusimu di sini.
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
2Variabel dan Tipe Data
Integer Tak BertandaInput dan OutputInteger BertandaNilai Booleanstring di MemoriKartu Profil5Fungsi
Parameter FungsiMengembalikan NilaiFungsi MurniPemanggilan Fungsi PembantuPerhitungan yang Dapat Digunakan KembaliLatihan sendiri: Playground Solidity