首页 > 解决方案 > 如何在 Solidity 中初始化映射,最佳实践是什么?

问题描述

我想在智能合约的声明行中初始化我的映射。我想知道最佳做法是什么?我尝试了以下方法,但 Remix 给了我错误:

mapping(address _addr) public view myMap = [ addr-1 : true, addr-2 : false, addr-3 : true ];

标签: soliditysmartcontracts

解决方案


您需要先声明变量,然后在单独的行中为其赋值。

pragma solidity ^0.8;

contract MyContract {
    mapping(address => bool) public myMap;
    
    constructor() {
        myMap[address(0x123)] = true;
        myMap[address(0x456)] = false;
        myMap[address(0x789)] = true;
    }
}

推荐阅读