from solidity: Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient怎么解决哇?
当你在 Solidity 中使用 constructor 关键字声明构造函数时,如果在构造函数前添加了 visibility 关键字(如 public、private 等),编译器会给出“Visibility for constructor is ignored”的警告。这是因为在 Solidity 中,构造函数的 visibility 必须是 public,其他的 visibility 关键字是无效的。
如果你想要声明一个不能被部署的合约,你可以使用 abstract 关键字来声明它。例如:
pragma solidity ^0.8.0;
abstract contract MyContract {
// 合约代码
}
如果你希望保留 visibility 关键字,你可以使用 _(下划线)来代替构造函数的 visibility 关键字。例如:
pragma solidity ^0.8.0;
contract MyContract {
constructor() public {
// 构造函数代码
}
}
希望这些信息能帮到你!