copy

  • 被修饰的值可以被复制
    drop
  • 被修饰的值在作用域结束时可以被丢弃
  • drop能力的结构体中的数据类型都要有drop能力
    • UID没有drop能力,所以Object没有drop
  • 基本数据类型被默认了drop能力
    key
  • 被修饰的值可以作为键值对全局状态进行访问
    store
  • 被修饰的值可以被存储到其他结构体

逐个分析

  • 只有key
    • 定义对象
    • 自定义转移规则
    • 对象有全局ID,可以被全局存储和查找
  • 只有store
    • 被修饰的值可以被存储到其他结构体
  • 只有drop
    • 被修饰的值在离开作用域时会被自动析构(删除)
    • 基本数据类型默认实现了drop
  • key,store
    • 对象可以被任意转移,不被转移规则限制
      • 可以用public_transfer方法跳过if等限制
    • 对象有全局ID,可以被全局存储和查找
  • 没有任何能力
    • 只在当前事务中
  • key和drop不能同时存在
    • 全局存储和丢失有冲突
  • key和copy也不能同时存在
    • key的UID具有唯一性
  • copy和drop
    • 做日志
      • emit