Sağlamlık - Saf İşlevler

Saf işlevler, durumu okumamalarını veya değiştirmemelerini sağlar. Bir işlev şu şekilde bildirilebilir:pure. İşlevde varsa aşağıdaki ifadeler durumu okumak olarak kabul edilir ve derleyici bu gibi durumlarda uyarı verir.

  • Durum değişkenlerini okuma.

  • Adres (bu) .balance veya <address> .balance'a erişiliyor.

  • Block, tx, msg'nin özel değişkenlerinden herhangi birine erişim (msg.sig ve msg.data okunabilir).

  • Saf olarak işaretlenmemiş herhangi bir işlevi çağırmak.

  • Belirli işlem kodlarını içeren satır içi derlemeyi kullanma.

Saf işlevler, bir hata oluşursa olası durum değişikliklerini geri döndürmek için revert () ve gerektirir () işlevlerini kullanabilir.

Bir görünüm işlevi kullanarak aşağıdaki örneğe bakın.

Misal

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

Solidity First Application bölümünde verilen adımları kullanarak yukarıdaki programı çalıştırın .

Çıktı

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