Solidity 结构体(struct)

类似于C语言,Solidity 也有结构体(struct)类型,用于表示复合型数据。结构体是引用类型。

例如,一本书的信息:

  • Title
  • Author
  • Subject
  • Book ID

就可以用结构体来表示。

 

1. 定义结构体

要定义结构,使用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;
}

 

2. 访问结构体成员

要访问结构的任何成员,使用成员访问操作符(.)。

示例

// SPDX-License-Identifier: SimPL-3.0
pragma solidity ^0.7.0;

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

   function setBook() public {
      book = Book('Learn Java', 'codebaoku.com', 1);
   }
   function getBookAuthor() public view returns (string memory) {
      return book.author;
   }
}

运行上述程序,先单击 setBook 按钮,然后单击 getBookAuthor 获取图书 Author。

输出结果:

string: codebaoku.com'

与数组和结构体一样,映射也是引用类型。下面是声明映射类型的语法。mapping(_KeyType => _ValueType)_KeyType:可以是任何内置类型,或者 bytes 和 字 ...