库(Libraries)
库类似于合约,但主要作用是代码重用。库中包含了可以被合约调用的函数。
Solidity中,对库的使用有一定的限制。以下是库的主要特征。
示例
尝试下面的代码,来理解库是如何工作的。
1 | pragma solidity ^0.5.0; |
Using For指令
using A for B
指令,可用于将库A的函数附加到给定类型B。这些函数将把调用者类型作为第一个参数(使用self
标识)。
示例
尝试下面的代码,来理解Using For
是怎么工作的。
1 | pragma solidity ^0.5.0; |
附言
基础学习资料
- Solidity中文文档:https://learnblockchain.cn/docs/solidity/introduction-to-smart-contracts.html#
- ERC20:https://learnblockchain.cn/2018/01/12/create_token/
- ERC721:https://learnblockchain.cn/2018/03/23/token-erc721/
- cryptozombies游戏:https://cryptozombies.io/zh
- 学习列表:https://github.com/yippee-ki-yay/eth-dev-reading-list
- 语法基础:https://www.tryblockchain.org/solidity-libraries-%E5%BA%93.html
与智能合约交互
源码
示例项目
- https://solidity-by-example.org/
- https://github.com/raineorshine/solidity-by-example
- https://github.com/cyrusadkisson/solidity-baby-steps
- https://github.com/flashbots/simple-arbitrage