【Solidity】Library的使用

Library 不是一个合约,是工具class,可以让variable做功能扩展,有点似于python的功能,用得好的话可以省gas,而且写一次然后可以重复使用,非常方便。

  • Library不能set constructor
  • Library不能继承其他合约
  • Library不能接受代币
  • Library不能包含区块链上的数据

代码范例

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

library SafeMath{
    function add(uint x, uint y)internal pure returns(uint){
        return x+y;
    }

    function sub(uint x, uint y)internal pure returns(uint){
        assert(x>y);//x必须大于y, 否则报错
        return x-y;
    }
}

contract test{
    using SafeMath for uint;

    function doAdd(uint x,uint y) public pure returns(uint){
        return x.add(y);
    }

    function doSub(uint x,uint y) public pure returns(uint){
        return x.sub(y);
    }
}

Loading

Facebook评论