什么是库?
库是智能合约的精简版。就像智能合约一样,我们可以在其他合约中使用库的函数。但与智能合约不同的是,库不能有任何状态变量,它们也不能继承其他合约。这个库的目的很简单,这些库位于区块链上,包含可以被其他合约使用的代码。
- library用于定义合约库;
- 库合约可以被其他合约引用并使用其提供的方法;
- 参考库:http://github.com/OpenZeppelin/openzeppelin-contracts(OpenZeppelin Contracts 是一个用于安全智能合约开发的库。它提供了 ERC20 和 ERC721 等标准的实现,可以按需部署或扩展以满足需求,还提供 Solidity 组件来构建自定义合同和更复杂的分散系统);
库的演示:实现字符串比较函数
首先我们先来写个库,它的功能是实现字符串的比较
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.7;
library libstring{
function isEqual(string memory a,string memory b)internal pure returns(bool){