Solidity - 结构体



结构体类型用于表示记录。假设您想跟踪图书馆中的书籍。您可能需要跟踪每本书的以下属性:

  • 书名
  • 作者
  • 主题
  • 图书ID

定义结构体

要定义结构体,必须使用struct关键字。struct关键字定义了一种新的数据类型,它具有多个成员。结构体语句的格式如下:

struct struct_name { 
   type1 type_name_1;
   type2 type_name_2;
   type3 type_name_3;
}

示例

struct Book { 
   string title;
   string author;
   uint book_id;
}

访问结构体及其变量

要访问结构体的任何成员,我们使用成员访问运算符(.)。成员访问运算符在结构体变量名和我们想要访问的结构体成员之间编码为一个句点。您可以使用结构体来定义结构体类型的变量。以下示例演示如何在程序中使用结构体。

示例

尝试以下代码来了解结构体在Solidity中的工作方式。

pragma solidity ^0.5.0;

contract test {
   struct Book { 
      string title;
      string author;
      uint book_id;
   }
   Book book;

   function setBook() public {
      book = Book('Learn Java', 'TP', 1);
   }
   function getBookId() public view returns (uint) {
      return book.book_id;
   }
}

使用Solidity第一个应用章节中提供的步骤运行上述程序。

首先点击setBook按钮将值设置为LARGE,然后点击getBookId获取选定的图书ID。

输出

uint256: 1
广告