下一代智能合约编程语言Move(四)

背景

之前的文章我们已经介绍了Move的模块和函数,接下来将会介绍一些Move的特性。

结构体

结构体是用户自定义的拥有复杂数据的数据类型,它可以简单理解为一个key——value形式的存储器,key时存储数据的名字而value是其存储的值。

结构体的定义

结构体只能在模块里定义,一struct关键字开头,之后时名字和双括号,双括号里面是是定义:

struct Name {
  FIELD1: TYPE1,
  FIELD@: TYPE2,
  ......
}

以下就是结构体定义的例子:

module M {
  struct Empty{}

  struct MyStruct{
    field1: address,
    field2: bool,
    field3: Empty
  }

  struct Example {
    field1: u8,
    field2: address,
    field3: u64,
    field4: bool,
    field5: bool,

    field5: MyStruct
  }
}

需要注意的是每一个定义的结构体都会变成一个新的类型,这个类型可以桶模块访问,如M::MyStruct。

递归定义在Move是不允许的,例如以下代码编译会报错:

struct MyStruct{
    field5: MyStruct
  }
结构体的使用

我们可以通过创建实例来使用结构体,可以通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值