Get in touch with us! We’re here to assist you. Please fill out the form below, and we’ll respond to your inquiry as soon as possible.

Քարտեզագրման

Քարտեզները(mappings) ստեղծվում են շարահյուսական քարտեզագրմամբ (keyType => valueType):

KeyType-ը կարող է լինել ցանկացած ներկառուցված արժեքի տեսակ, բայթ, տող կամ որևէ պայմանագիր:

valueType-ը կարող է լինել ցանկացած տեսակ՝ ներառյալ մեկ այլ քարտեզագրում կամ զանգված:

Քարտեզագրումները կրկնվող չեն:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract Mapping {
    // Քարտեզագրում address-ից մինչև uint
    mapping(address => uint) public myMap;

    function get(address _addr) public view returns (uint) {
        // Քարտեզագրումը միշտ արժեք է վերադարձնում:
        // Եթե արժեքը երբեք չի սահմանվել, այն կվերադարձնի կանխադրված արժեքը:
        return myMap[_addr];
    }

    function set(address _addr, uint _i) public {
        // Թարմացրել արժեքը այս հասցեում
        myMap[_addr] = _i;
    }

    function remove(address _addr) public {
        // Վերականգնել արժեքը կանխադրված արժեքին:
        delete myMap[_addr];
    }
}

contract NestedMapping {
    // Ներդրված քարտեզագրում(Nested mapping) (քարտեզագրում հասցեից մեկ այլ քարտեզագրում)
    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];
    }
}

Փորձեք Remix-ում

What are your feelings