Menu
Coddy logo textTech

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.

challenge icon

Wyzwanie

Łatwy

Utwó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.
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Solidity