Solidity - Chức năng thuần túy

Các chức năng thuần túy đảm bảo rằng chúng không đọc hoặc sửa đổi trạng thái. Một hàm có thể được khai báo làpure. Các câu lệnh sau nếu có trong hàm được coi là đang đọc trạng thái và trình biên dịch sẽ đưa ra cảnh báo trong những trường hợp như vậy.

  • Đọc các biến trạng thái.

  • Địa chỉ truy cập (this) .balance hoặc <address> .balance.

  • Truy cập bất kỳ biến đặc biệt nào của khối, tx, msg (có thể đọc msg.sig và msg.data).

  • Gọi bất kỳ chức năng nào không được đánh dấu thuần túy.

  • Sử dụng lắp ráp nội tuyến có chứa các mã quang nhất định.

Các hàm thuần túy có thể sử dụng các hàm revert () và request () để hoàn nguyên các thay đổi trạng thái tiềm ẩn nếu có lỗi xảy ra.

Xem ví dụ bên dưới bằng cách sử dụng chức năng xem.

Thí dụ

pragma solidity ^0.5.0;

contract Test {
   function getResult() public pure returns(uint product, uint sum){
      uint a = 1; 
      uint b = 2;
      product = a * b;
      sum = a + b; 
   }
}

Chạy chương trình trên bằng các bước được cung cấp trong chương Ứng dụng đầu tiên của Solidity .

Đầu ra

0: uint256: product 2
1: uint256: sum 3