Menu
Coddy logo textTech

Durumu Okuma ve Yazma

Coddy'nin Solidity Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 27 / 53.

Bir view fonksiyonu sözleşme durumunu okuyabilir, ancak onu değiştiremez. Duruma yazan bir fonksiyon view veya pure olarak işaretlenemez. Her fonksiyonun amacını netleştirmek için bir değeri okuyan getter'ı, onu değiştiren setter'dan ayırın.

Bunu sözleşme kapsamında tanımlayın:

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

Bunu sağlanan main fonksiyonunun içinde kullanın:

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

setValue, paylaşılan depolanmış değişkene yazar. readValue, bu değişkeni değiştirmeden döndürdüğü için view'dur. main de setValue'yu çağırarak dolaylı olarak yazar; bu nedenle başlığında view veya pure değiştiricisi yoktur.

Sözleşme durumuna yazan bir işlev view olarak işaretlenemez.

challenge icon

Görev

Kolay

level durumunu, setLevel setter'ını ve getLevel view getter'ını tanımla. main, level değerini kendisine sağlanan nextLevel değerine ayarlamalı, ardından getter sonucunu yazdırmalıdır.

Testler, main'e bağımsız değişkenleri şu sırayla iletir: uint256 nextLevel. Her test, yeni bir sözleşme durumuyla başlar.

İstenen çıktı için console.log kullan. İstenen değerleri, görev bunları belirtmedikçe ek etiket olmadan, her satıra bir tane gelecek şekilde yazdır.

Kendin dene

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 nextLevel) external  {
        // Çözümünüzü buraya yazın.
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Solidity playground