Vyper 入门: 7. 映射类型 在Vyper中,映射(Mapping)是一种将键映射到值的数据结构,用于存储键值对的集合,通过 关键字定义 映射特点 键不会直接存储在映射中,而是通过其哈希值访问。 映射的值默认初始化为相应类型的默认值。 映射无法遍历,也没有提供长度属性。 映射声明 映射声明需要指定键和值的类型,例如 , 其中 可以是Vyper中的任何基本类型或字节类型,但是不支持映射、数组或结构作为键类型。 则可以是任何类型,包括映射和结构。 映射是状态变量,只在函数外部声明,无法在函数内部声明映射类型。
HashMap 关键字定义HashMap[_KeyType, _ValueType], 其中 _KeyType 可以是Vyper中的任何基本类型或字节类型,但是不支持映射、数组或结构作为键类型。_ValueType 则可以是任何类型,包括映射和结构。example_mapping: public(HashMap[uint256, uint256]) # 映射赋值 @external def set_mapping(): self.example_mapping[0] = 100 # 无法在函数内部声明一个映射,这样会出错 # example_mapping: HashMap[uint256, uint256]
number: uint256 = self.example_mapping[0] # number == 100
self.example_mapping[0] = 99 # number == 99
self.example_mapping[0] = empty(uint256) # number == 0