【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评论