一、 关键字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版本以后没有这个问题。

五、写代码来练习一下吧