Soliditas - Fungsi Murni

Fungsi murni memastikan bahwa mereka tidak membaca atau mengubah status. Suatu fungsi dapat dideklarasikan sebagaipure. Pernyataan berikut jika ada dalam fungsi dianggap membaca status dan compiler akan memberikan peringatan dalam kasus seperti itu.

  • Membaca variabel status.

  • Mengakses address (this) .balance or <address> .balance.

  • Mengakses variabel khusus blok, tx, msg (msg.sig dan msg.data dapat dibaca).

  • Memanggil fungsi apa pun tidak ditandai murni.

  • Menggunakan perakitan inline yang berisi opcode tertentu.

Fungsi murni dapat menggunakan fungsi revert () dan require () untuk mengembalikan potensi perubahan status jika terjadi kesalahan.

Lihat contoh di bawah ini menggunakan fungsi tampilan.

Contoh

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; 
   }
}

Jalankan program di atas menggunakan langkah-langkah yang disediakan di bab Aplikasi Solidity First .

Keluaran

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