Solidity mapping delete
1. mapping
一种键值对的映射关系存储结构。语法:mapping(_Key => _Value),键值对类型,键是唯一的,其赋值方式为:map[a]=test; 意思是键为a,值为test;
注意:
- 1.键的类型允许除映射外的所有类型,如数组,合约,枚举,结构体。值的类型无限制。
- 2.在映射表里没有长度,键集合,值集合这样的概念,同时映射并没有做迭代的方法,可以自行实现:https://github.com/ethereum/dapp-bin/blob/master/library/iterable_mapping.sol 这是git上的一个实现方法。
2. delete
用于将某个变量重置为初始值。对于整数,运算符的效果等同于a = 0。而对于定长数组,则是把数组中的每个元素置为初始值,变长数组则是将长度置为0。对于结构体,也是类似,是将所有的成员均重置为初始值。
// SPDX-License-Identifier: SimPL-3.0 pragma solidity ^0.7.0; contract A { uint data; function change(uint i) internal { data = i; } function getData() public returns (uint) { delete data; return data; } }
Solidity 0.6 是 Solidity 一个较大版本的升级,带来了一些对老版本不兼容的一些变化。 1. 新的 fallback 函数写法在 0.6 之前的版本,我们可以定义下面的 fal ...