结构体是 Solidity 中的一种用于组织数据的类型,可以将多个数据类型的值封装在一起。
结构体可以看作是自定义类型,它可以包含任意数量的字段,每个字段可以是任意的数据类型,例如数字、字符串、数组和其他结构体。
pragma solidity ^0.8.7;
contract Example {
//定义一个结构体Person
struct Person {
uint age;
string name;
address walletAddress;
}
//定义一个结构体数组people
Person[] people;
//添加一个新的Person
function addPerson(uint _age, string memory _name, address _walletAddress) public {
Person memory newPerson = Person({
age: _age,
name: _name,
walletAddress: _walletAddress
});
people.push(newPerson);
}
//读取结构体的信息
function getPerson(uint index) public view returns (uint, string memory, address) {
Person memory person = people[index];
return (person.age, person.name, person.walletAddress);
}
}
在上面的示例代码中:
结构体Person中包含了年龄(age)、名字(name)和钱包地址(walletAddress)三个字段。
结构体数组people 用于存储多个Person结构体的信息。
函数addPerson可以用来添加一个新的Person结构体。
函数getPerson则可以读取指定索引的Person结构体信息,并通过return返回它的三个字段。