Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 68.5MB ·虚拟内存 1300.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
良好统一的编程风格,有助于提高代码的可读性和可维护性。
下面是有关Solidity编程风格的几条建议。
pragma solidity ^0.5.0; contract LedgerBalance { //... } contract Updater { //... }
pragma solidity ^0.5.0; contract A { function balance() public pure; function account() public pure; } contract B is A { function balance() public pure { // ... } function account() public pure { // ... } }
function_with_a_long_name( longArgument1, longArgument2, longArgument3 ); variable = function_with_a_long_name( longArgument1, longArgument2, longArgument3 ); event multipleArguments( address sender, address recipient, uint256 publicKey, uint256 amount, bytes32[] options ); MultipleArguments( sender, recipient, publicKey, amount, options );
pragma solidity ^0.5.0; contract A { constructor() public { // ... } function() external { // ... } // External functions // ... // External view functions // ... // External pure functions // ... // Public functions // ... // Internal functions // ... // Private functions // ... }
pragma solidity ^0.5.0; contract Coin { struct Bank { address owner; uint balance; } } if (x < 3) { x += 1; } else if (x > 7) { x -= 1; } else { x = 5; } if (x < 3) x += 1; else x -= 1;
function kill() public onlyowner { selfdestruct(owner); }
mapping(uint => uint) map; // 不是 mapping (uint => uint) map; mapping(address => bool) registeredAddresses; mapping(uint => mapping(bool => Data[])) public data; mapping(uint => mapping(uint => s)) data;
uint[] x; // 不是 unit [] x;
str = "foo"; str = "Hamlet says, 'To be or not to be...'";
代码中各部分顺序如下:
在Interface、Library或Contract中,各部分顺序应为:
owned.sol
pragma solidity ^0.8.0; // Owned.sol contract Owned { address public owner; constructor() public { owner = msg.sender; } modifier onlyOwner { //.... } function transferOwnership(address newOwner) public onlyOwner { //... } }
Congress.sol
pragma solidity ^0.8.0; // Congress.sol import "./Owned.sol"; contract Congress is Owned, TokenRecipient { //... }
智能合约的访问权限共有 4 种类型: private、internal、public 和 external,本章节主要讲述它们之间的区别及应用。1. 访问权限1.1 privateprivate 函数 ...