Funkcje czyste
Część sekcji Podstawy ścieżki Solidity w Coddy. Lekcja 23 z 53.
Funkcja czysta oblicza wynik na podstawie swoich parametrów i wartości lokalnych, nie odczytując ani nie zapisując stanu kontraktu. Dzięki temu łatwo przeanalizować obliczenia. Oznaczenie funkcji jako czystej jest obietnicą sprawdzaną przez kompilator, a nie poleceniem usunięcia danych.
Zdefiniuj tę funkcję pomocniczą wewnątrz kontraktu:
function perimeter(uint256 w, uint256 h) internal pure returns (uint256) {
return 2 * (w + h);
}Użyj jej wewnątrz udostępnionej funkcji main:
console.log(perimeter(8, 3));Funkcja pomocnicza potrzebuje tylko szerokości i wysokości. Zwraca dwukrotność ich sumy, więc może być czysta. Główna funkcja opakowująca pozostaje funkcją typu view, ponieważ korzysta z konsoli debugowania; sama funkcja pomocnicza nie zawiera logowania ani dostępu do stanu.
Czysta funkcja nie odczytuje ani nie zapisuje stanu kontraktu.
Wyzwanie
ŁatwyUtwórz czystą funkcję pomocniczą o nazwie triple, która zwraca trzykrotność swojego argumentu typu uint256. Wypisz triple(value) z main.
Testy przekazują argumenty do main w tej kolejności: uint256 value. Każdy test rozpoczyna się ze świeżym stanem kontraktu.
Użyj console.log do żądanego wyjścia. Wypisuj tylko żądane wartości, po jednej w wierszu, bez dodatkowych etykiet, chyba że zadanie określa inaczej.
Spróbuj swoich sił
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// Napisz tutaj swoje rozwiązanie.
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
2Zmienne i typy
Liczby całkowite bez znakuWejście i wyjścieLiczby całkowite ze znakiemWartości logiczneŁańcuchy znaków w pamięciKarta profilu5Funkcje
Parametry funkcjiZwracanie wartościFunkcje czysteWywołania pomocniczeWielokrotnego użytku obliczeniaPoćwicz samodzielnie: Edytor online Solidity