Zustand lesen und schreiben
Teil des Abschnitts Grundlagen der Solidity-Journey von Coddy. Lektion 27 von 53.
Eine view-Funktion darf den Vertragszustand lesen, ihn aber nicht ändern. Eine Funktion, die den Zustand schreibt, kann nicht als view oder pure gekennzeichnet werden. Trenne einen Getter, der einen Wert liest, von einem Setter, der ihn ändert, damit der Zweck jeder Funktion klar ist.
Deklariere dies auf Vertragsebene:
uint256 stored;
function setValue(uint256 n) internal {
stored = n;
}
function readValue() internal view returns (uint256) {
return stored;
}Verwende es innerhalb der bereitgestellten main-Funktion:
setValue(18);
console.log(readValue());setValue schreibt die gemeinsam genutzte gespeicherte Variable. readValue ist view, weil es diese Variable zurückgibt, ohne sie zu ändern. main schreibt ebenfalls indirekt, indem es setValue aufruft, daher enthält sein Funktionskopf keinen view- oder pure-Modifikator.
Eine Funktion, die den Zustand des Vertrags schreibt, kann nicht als view markiert werden.
Aufgabe
EinfachDeklariere den Zustand level, einen Setter setLevel und einen View-Getter getLevel. main muss level auf den übergebenen nextLevel setzen und anschließend das Ergebnis des Getters ausgeben.
Die Tests übergeben Argumente an main in dieser Reihenfolge: uint256 nextLevel. Jeder Test beginnt mit einem frischen Vertragszustand.
Verwende console.log für die angeforderte Ausgabe. Gib nur die angeforderten Werte aus, jeweils einen pro Zeile, ohne zusätzliche Bezeichnungen, sofern die Aufgabe dies nicht vorgibt.
Probier es selbst
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 nextLevel) external {
// Schreibe deine Lösung hier.
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
2Variablen und Datentypen
Vorzeichenlose GanzzahlenEingaben und AusgabenVorzeichenbehaftete GanzzahlenBoolesche WerteStrings im SpeicherProfilkarte5Funktionen
FunktionsparameterRückgabewerteReine FunktionenHilfsaufrufeWiederverwendbare Berechnungen6Vertragszustand
ZustandsvariablenZustand lesen und schreibenÖffentliche Zustands-GetterKonstantenGemeinsamer ZählerÜbe selbstständig: Solidity-Playground