07-Solidity8.0-for循环&Mapping

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];
    }
}

总结

日拱一卒。

猜你喜欢

转载自blog.csdn.net/yyjava/article/details/125289022
今日推荐