Skip to content

合约结构

Solidity 合约结构分为三个部分:合约声明、状态变量和合约函数。

合约声明

solidity
pragma solidity ^0.8.0; //版本声明

contract MyContract { //合约声明
  //状态变量和合约函数
}

状态变量:

状态变量是在 Solidity 合约中定义的变量。它们可以存储合约的状态数据,并在合约函数之间共享。

例如,下面的代码声明了一个名为 myVar 的状态变量

solidity
contract MyContract {
  uint256 myVar;
}

合约函数:

合约函数是在 Solidity 合约中定义的函数,用于操作合约的状态数据。它们可以被合约的外部调用,并且可以接受输入参数和返回值。

例如,下面的代码定义了一个名为 setMyVar 的合约函数,用于设置 myVar 状态变量的值:

solidity
contract MyContract {
  uint256 myVar;

  function setMyVar(uint256 _value) public {
    myVar = _value;
  }
}

上面的函数接受一个名为 _value 的参数,用来设置 myVar 的值。

要调用该函数,需要使用一个 Solidity 编写的合约调用程序,并将参数传递给该函数。

例如,下面的代码演示了如何使用JavaScript从一个名为 MyContractSolidity 合约中调用 setMyVar 函数:

solidity
const contract = new web3.eth.Contract(MyContract.abi, contractAddress);
contract.methods.setMyVar(42).send({from: account});

上面的代码首先创建了一个名为 contractSolidity 合约实例,然后调用该实例的 setMyVar 函数,传递参数42

最后,该函数从一个名为 accountSolidity 账户发送。