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.
Görev
Kolaylevel 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.
}
}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
2Değişkenler ve Türler
İşaretsiz TamsayılarGirdiler ve Çıktılarİşaretli TamsayılarBoolean DeğerleriBellekte DizelerProfil Kartı5Fonksiyonlar
Fonksiyon ParametreleriDeğer DöndürmeSaf FonksiyonlarYardımcı ÇağrılarıYeniden Kullanılabilir Hesaplamalar6Sözleşme Durumu
Durum DeğişkenleriDurumu Okuma ve YazmaHerkese Açık Durum GetiricileriSabitlerPaylaşılan SayaçKendi başına pratik yap: Solidity playground