Appearance
合约结构
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
从一个名为 MyContract
的Solidity
合约中调用 setMyVar
函数:
solidity
const contract = new web3.eth.Contract(MyContract.abi, contractAddress);
contract.methods.setMyVar(42).send({from: account});
上面的代码首先创建了一个名为 contract
的 Solidity
合约实例,然后调用该实例的 setMyVar
函数,传递参数42
。
最后,该函数从一个名为 account
的 Solidity
账户发送。