一、 关键字struct自定义类型
struct Player{
string name;
uint coins;
}
二、结构体的声明和初始化
1.仅声明变量,不初始化
Player public player;
2.按成员顺序初始化,如果结构体有mapping需要跳过
Player public player = Player(1,"Tom",1);
3.通过指定成员名称初始化,这样就不用指定成员的顺序,在结构体变量多的时候,推荐这样初始化
Player public player = Player({id:1,level:1});
三、结构体的访问和赋值
结构体通过点号进行成员访问,例如:xxx.name,赋值也是一样 xxx.name="Tom"
players[msg.sender].name = name;
四、结构体的限制
结构体目前仅支持在合约内部使用,或继承合约内使用。如果要在参数和返回值中使用结构体,函数必须声明internal,0.8版本以后没有这个问题。
五、写代码来练习一下吧
