Solidity - 结构

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

  • Title
  • Author
  • Subject
  • Book ID

定义结构体

要定义结构,必须使用struct关键字。 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;
}

访问结构体及其变量

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

示例

尝试以下代码来了解结构在 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 First 应用 章节中提供的步骤运行上述程序。

首先点击setBook按钮将值设置为LARGE,然后点击getBookId获取所选书籍的id。

输出

uint256: 1