【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); } }
Facebook评论