Menu
CoddyTech

Membaca dan Menulis State

Termasuk bagian Dasar-Dasar dalam perjalanan Solidity di Coddy. Pelajaran 27 dari 53.

Fungsi view dapat membaca state kontrak, tetapi tidak dapat mengubahnya. Fungsi yang menulis state tidak dapat ditandai sebagai view atau pure. Pisahkan getter yang membaca nilai dari setter yang mengubahnya agar tujuan setiap fungsi jelas.

Deklarasikan ini pada cakupan kontrak:

uint256 stored;
function setValue(uint256 n) internal {
    stored = n;
}
function readValue() internal view returns (uint256) {
    return stored;
}

Gunakan ini di dalam fungsi main yang disediakan:

setValue(18);
console.log(readValue());

setValue menulis variabel tersimpan yang digunakan bersama. readValue bersifat view karena fungsi itu mengembalikan variabel tersebut tanpa mengubahnya. main juga menulis secara tidak langsung dengan memanggil setValue, jadi deklarasinya tidak memiliki modifier view atau pure.

Fungsi yang menulis state contract tidak dapat ditandai sebagai view.

challenge icon

Tantangan

Mudah

Deklarasikan state level, setter setLevel, dan getter view getLevel. main harus menetapkan level ke nextLevel yang diberikan, lalu mencetak hasil getter.

Pengujian memberikan argumen kepada main dalam urutan ini: uint256 nextLevel. Setiap pengujian dimulai dengan state kontrak 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 nextLevel) external  {
        // Tulis solusimu di sini.
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground Solidity