前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >七、数组及其操作《2022 solidity8.+ 版本教程到实战》

七、数组及其操作《2022 solidity8.+ 版本教程到实战》

作者头像
1_bit
发布2022-10-04 18:54:51
1570
发布2022-10-04 18:54:51
举报
文章被收录于专栏:我的知识小屋我的知识小屋

结构体

结构体是一种可以自行定义的数据类型,其结构体内是复合的数据类型结构,当单一数据类型不能满足时可以使用创建所需结构体。

结构体定义使用 struct,例如以下示例:

代码语言:javascript
复制
struct Human{
     uint age;
     string name;
     uint height;
 }

以上代码中使用 struct 定义结构体,在此不必使用 public 进行修饰,因为 Human 这个结构体是一种数据类型的抽象,使用 public 毫无意义。

其结构体内包含 uint 的 age 和 height 变量数据,以及一个 string 类型的 name 数据,这意味着,在之后的使用中,Human 这个类型的结构体变量可使用其中的数据,例如 age 、name 和height。

接着可以创建对应的结构体 Human 类型的变量,就像创建一个 uint 变量一样简单:

代码语言:javascript
复制
Human public XiaoMing;
Human public XiaoHong;

此时直接将创建的结构体 Human 当做一种数据类型即可。

使用时直接使用 点运算符 . 对其中的属性进行赋值或者取值即可:

代码语言:javascript
复制
XiaoHong.age=18;
XiaoHong.name="XiaoHong";
XiaoHong.height=170;

那么此时创建一个合约,完整的结构体赋值操作如下:

代码语言:javascript
复制
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.6;
contract StructDemo{
    struct Human{
        uint age;
        string name;
        uint height;
    }
    Human public XiaoMing;
    Human public XiaoHong;
    function testStruct()external{
        XiaoHong.age=18;
        XiaoHong.name="XiaoHong";
        XiaoHong.height=170;

        XiaoMing.age=19;
        XiaoMing.name="XiaoMing";
        XiaoMing.height=172;

        Human memory XiaoLv=Human(20,"XiaoLv",168);
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结构体
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档