Reine Funktionen
Teil des Abschnitts Grundlagen der Solidity-Journey von Coddy. Lektion 23 von 53.
Eine reine Funktion berechnet aus ihren Parametern und lokalen Werten, ohne den Zustand des Vertrags zu lesen oder zu schreiben. Dadurch lässt sich eine Berechnung leicht nachvollziehen. Eine Funktion als pure zu kennzeichnen, ist ein vom Compiler überprüftes Versprechen und keine Aufforderung, Daten zu löschen.
Definiere diesen Hilfsfunktion innerhalb des Vertrags:
function perimeter(uint256 w, uint256 h) internal pure returns (uint256) {
return 2 * (w + h);
}Verwende sie innerhalb der bereitgestellten main-Funktion:
console.log(perimeter(8, 3));Der Hilfsfunktion benötigt nur Breite und Höhe. Sie gibt das Doppelte ihrer Summe zurück, daher kann sie pure sein. Der Haupt-Wrapper bleibt view, weil er die Debugging-Konsole verwendet; die Hilfsfunktion selbst enthält weder Protokollierung noch Zustandszugriff.
Eine pure-Funktion liest oder schreibt keinen Vertragszustand.
Aufgabe
EinfachErstelle einen reinen internen Helfer namens triple, der das Dreifache seiner uint256-Eingabe zurückgibt. Gib triple(value) aus main aus.
Die Tests übergeben main Argumente in dieser Reihenfolge: uint256 value. Jeder Test beginnt mit einem frischen Vertragszustand.
Verwende console.log für die angeforderte Ausgabe. Gib nur die angeforderten Werte aus, 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 value) external view {
// 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 BerechnungenÜbe selbstständig: Solidity-Playground