泰岳区块链--面试 solidity fallback函数

面试题:fallback函数功能描述。实现一个fallback函数。

首选这个面试题,是看大家了解一下solidity的fallback函数功能。

那就直接来聊一下 solidity 的fallback函数。 solidity的fallback函数这版本5和版本6有很大的改动。

1、fallback函数的功能。

     fallabck函数是solidity里面实现的一个无名函数。

    功能:

            接受一个未知函数调用或者接受直接的转账。

     特点:

              a、这个函数必须是加external payable两个修饰符

              b 、这fallback函数不接受任何参数

              c 、当用户调用此合约时找不到对应的payable函数后,就会进入这个函数。

              d、用户直接往合约转账积分(Tai积分)的时候就会进入

2、fallback V5版本和V6版本的差异和实现

      V5 版本solidity 的fallback函数实现很简单。

       function() external payable{
        x =1;
        y = msg.value;
       }

       函数定义就是这样子,function() external payable,但是里面实现的内容都可以自己实现。只要用户给的gas够多,就可以执行很多动作。

     V6  版本solidity 的fallback 实现。

     fallback() external payable {x = 1;k=1; y = msg.value; }
    receive() external payable { 
        x = 2; 
        y = msg.value; 
        
    }

     这个V6版本和V5版本就完全不一样了,必须是配对实现,没有function,只有一个fallback,但是添加了一个receive,fallback函数里面的函数体,其实不执行。主要的执行的是receive函数。大家可以通过调试来进行确认。

另外一个知识点:这个回调函数是支持转账为0 的转账的。

如果想提高自己APP的Gas消耗排名,这个就是一个必须要实现的功能。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章