Library
圖書館的使用是繼承的嗎?
當基類使用庫時,派生類是否也使用相同的庫?
例如:
contract A { using SafeMath for uint256; ... } contract B is A { //is code here using SafeMath for uint256? }
不。
在 Solidity 0.7.0 及更高版本中,
using ... for
不再繼承 的效果。引用 0.7.0更新日誌:
using A for B
僅影響提及它的契約。以前,效果是繼承的。現在,您必須在所有使用該功能的派生合約中重複 using 語句。
你說的對
pragma solidity ^0.4.24; library Bytes32 { function toString(bytes32) public pure returns (string) { return "1"; } } contract Parent { using Bytes32 for bytes32; function bar() public pure returns(string) { return bytes32(0).toString(); // returns "1" } } contract Child is Parent { function foo() public pure returns(string) { return bytes32(0).toString(); // returns "1" } }