solidity初学——以太坊学习笔记(三)
一、合约结构
在 Solidity 语言中,合约类似于其他面向对象编程语言中的类。每个合约中可以包含 状态变量、 函数、事件 Event、结构体、 和枚举类型的声明,且合约可以从其他合约继承。还有一些特殊的合约,如: 库和接口。
状态变量:
状态变量用于永久地保存合约中使用的数据。以下代码声明了一个用于保存用户钱包地址的状态变量:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >0.7.0 <0.9.0;
contract TinyStorage {
address savedUserWalletAddress; // 状态变量。
// ...
}
函数:
函数用于封装合约的执行代码,可以定义在合约结构的内部,也可以定义在合约的外部。函数需要定义函数名、参数列表、作用域、返回值。
// SPDX-License-Identifier: GPL-3.0
pragma solidity >0.7.0 <0.9.0;
contract TinyStorage {
address savedUserWalletAddress; // 状态变量。
function showWallet() public returns(address) {
// 定义函数
return savedUserWalletAddress; //函数的返回值
}
}
// 定义在合约结构外部的函数
function funMulitp(uint numA) pure returns (uint) {
return numA * 2;
}
事件:
事件用于调用以太坊虚拟机的日志接口
// SPDX-License-Identifier: GPL-3.0
pragma solidity >0.7.0 <0.9.0;
contract EventDemo {
event HighestBidIncreased(address bidder, uint amount)