Menu
CoddyTech

Hàm thuần

Thuộc phần Nền tảng cơ bản trong hành trình Solidity của Coddy. Bài học 23 trên 53.

Hàm thuần tính toán dựa trên các tham số và giá trị cục bộ mà không đọc hoặc ghi trạng thái của hợp đồng. Nhờ vậy, bạn có thể dễ dàng phân tích phép tính. Đánh dấu một hàm là thuần là lời cam kết mà trình biên dịch kiểm tra, chứ không phải yêu cầu xóa dữ liệu.

Định nghĩa hàm hỗ trợ này bên trong hợp đồng:

function perimeter(uint256 w, uint256 h) internal pure returns (uint256) {
    return 2 * (w + h);
}

Dùng hàm này bên trong hàm main đã cho:

console.log(perimeter(8, 3));

Hàm trợ giúp chỉ cần chiều rộng và chiều cao. Hàm trả về tổng của chúng nhân đôi, nên có thể là hàm thuần. Hàm bao chính vẫn là view vì nó dùng bảng điều khiển gỡ lỗi; bản thân hàm trợ giúp không ghi nhật ký hay truy cập trạng thái hợp đồng.

Hàm thuần không đọc hay ghi trạng thái hợp đồng.

challenge icon

Thử thách

Dễ

Tạo một hàm trợ giúp nội bộ thuần có tên triple, trả về giá trị gấp ba lần đầu vào uint256. In triple(value) từ main.

Các bài kiểm tra truyền đối số cho main theo thứ tự này: uint256 value. Mỗi bài kiểm tra bắt đầu với trạng thái hợp đồng mới.

Dùng console.log để in đầu ra theo yêu cầu. Chỉ in các giá trị được yêu cầu, mỗi giá trị trên một dòng, không thêm nhãn trừ khi đề bài yêu cầu.

Tự làm thử

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 value) external view {
        // Viết lời giải của bạn tại đây.
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Nền tảng cơ bản

Tự luyện tập: Playground Solidity