Solidity8.0
07-Solidity8.0-for循环&Mapping
前言
For 和 While 循环
Solidity 支持for、while和do while循环。
不要编写无界循环,因为这可能会达到 gas 限制,从而导致您的交易失败。
由于上述原因,很少使用while和do while循环。
映射
Map是使用语法创建的mapping(keyType => valueType)。
可以是keyType任何内置值类型、字节、字符串或任何协定。
valueType可以是任何类型,包括另一个映射或数组。
映射是不可迭代的。
一、Solidity8.0-for循环&Mapping
1.for循环&Mapping
代码如下(示例):
// SPDX-License-Identifier: MIT
pragma solidity ^0.8;
contract ForMapping {
function loop() public {
for (uint i = 0; i < 10; i++) {
if (i == 3) {
continue;
}
if (i == 5) {
break;
}
}
uint j;
while (j < 10) {
j++;
}
}
mapping(address => mapping(uint => bool)) public nested;
function get(address _addr1, uint _i) public view returns (bool) {
return nested[_addr1][_i];
}
function set( address _addr1, uint _i, bool _boo ) public {
nested[_addr1][_i] = _boo;
}
function remove(address _addr1, uint _i) public {
delete nested[_addr1][_i];
}
}
总结
日拱一卒。