Are there null like thing in solidity

前端 未结 5 1933
旧巷少年郎
旧巷少年郎 2021-02-05 05:33
    struct buyer{
       uint amount;
       Status status;
    }

    mapping(address=>buyer) public buyers;
    mapping(uint=>address) buyerIndex;
    uint publi         


        
5条回答
  •  再見小時候
    2021-02-05 06:07

    For integers:

    You could create none variable to use it as a NULL:

    uint256 constant NULL = 0;
    

    Example code for check:

    function isNULL(uint256 variable) internal returns (bool) {
        return variable == NULL;
    }
    

    For bytes32:

    You can follow different approach for bytes:

    bytes32 constant NULL = "";
    

    Example code piece:

    pragma solidity ^0.6.0;
    
    mapping(address => bytes32) public Countries;   
    
    function isCountriesInitialized(address _user) external view returns (bool) 
    {
        if (Countries[_user] == NULL) // Returns true if `Countries[_user]` is not initialized
            return false;
    
        return true;
    }
    

    I observe that on solidity >= v0.6.0 it may return 32 for length even though it is not mapped.

    Example of its returned value:

    b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

提交回复
热议问题