国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

solidity智能合約如何判斷mapping值為空

tabalt / 1483人閱讀

摘要:值的判斷問題在這類編程語言中,我們可以獲得里面的值然后與或空來進行判斷該對應的值是否為空。值的判斷解決方案如果值里面存的為,那么只需在內設置一個字段,用來表示改結構體是否已經被賦值。前一種情況并不存在面向編程語言中的空指針異常的問題。

mapping值的判斷問題

在Java這類編程語言中,我們可以獲得Map里面的值然后與null或空來進行判斷該key對應的值是否為空。可是在solidity中貌似并沒有提供類似的判斷。那么我們如果來進行mapping值的判斷呢。

mapping值的判斷解決方案

如果mapping值里面存的為struct,那么只需在struct內設置一個字段,用來表示改結構體是否已經被賦值。如果mapping的值為地址則可通過與0地址比較來判斷是否優質。

前一種情況并不存在面向編程語言中的空指針異常的問題。

以下為示例代碼:

pragma solidity ^0.5.10;

contract TestCheckNullStruct{
    
    struct User{
        uint name;
        bool isUsed;
    }
    
    mapping(address => User) users;
    mapping(uint => address) addresses;
    
    function isExistEntry(address _addr) public view returns(bool){
        return users[_addr].isUsed;
    }
    
    function isExistAddress(uint _key) public view returns(bool){
        return addresses[_key] != address(0);
    }
}
微信公眾號

更多職場經驗、認知提升等知識分享,請關注微信公眾號:程序新視界(ID:ershixiong_see_world)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75574.html

相關文章

  • 以太坊開發實戰學習-solidity語法(二)

    摘要:以太坊開發高級語言學習。地址以太坊區塊鏈由賬戶組成,你可以把它想象成銀行賬戶。使用很安全,因為它具有以太坊區塊鏈的安全保障除非竊取與以太坊地址相關聯的私鑰,否則是沒有辦法修改其他人的數據的。 以太坊開發高級語言學習。 一、映射(Mapping)和地址(Address) 我們通過給數據庫中的僵尸指定主人, 來支持多玩家模式。 如此一來,我們需要引入2個新的數據類型:mapping(映射)...

    wemall 評論0 收藏0
  • solidity智能合約如何判斷地址為0或空

    摘要:智能合約地址判斷在舊版本中可使用以下代碼來進行比較但如果在新版本中使用,則會提示錯誤信息。那么,如何正確使用來比較地址是否為空呢。因此可以如下寫法或當然,在使用操作符的時候也建議使用或來替代原文鏈接 智能合約地址判斷 在舊版本中可使用以下代碼來進行比較: owner != 0x0 但如果在新版本中使用,則會提示錯誤信息。 那么,如何正確使用來比較地址是否為空呢。 解決方案 可以使用ad...

    鄒強 評論0 收藏0
  • 如何通過以太坊智能合約來進行眾籌(ICO)

    摘要:本文首發于深入淺出區塊鏈社區原文鏈接如何通過以太坊智能合約來進行眾籌原文已更新,請讀者前往原文閱讀前面我們有兩遍文章寫了如何發行代幣,今天我們講一下如何使用代幣來公開募資,即編寫一個募資合約。 本文首發于深入淺出區塊鏈社區原文鏈接:如何通過以太坊智能合約來進行眾籌(ICO)原文已更新,請讀者前往原文閱讀 前面我們有兩遍文章寫了如何發行代幣,今天我們講一下如何使用代幣來公開募資,即編寫一...

    forrest23 評論0 收藏0
  • Solidity 簡易教程0x001

    摘要:函數和可用于檢查條件并在條件不滿足時拋出異常。函數只能用于測試內部錯誤,并檢查非變量。函數和狀態變量僅在當前定義它們的合約中使用,并且不能被派生合約使用。派生合約可以訪問所有非私有成員,包括內部函數和狀態變量,但無法通過來外部訪問。 Solidity是以太坊的主要編程語言,它是一種靜態類型的 JavaScript-esque 語言,是面向合約的、為實現智能合約而創建的高級編程語言,設計...

    FrozenMap 評論0 收藏0
  • 如何編寫一個可升級的智能合約

    摘要:本文首發于深入淺出區塊鏈社區原文鏈接如何編寫一個可升級的智能合約原文已更新,請讀者前往原文閱讀區塊鏈信任基礎的數據不可修改的特性,讓它傳統應用程序有一個很大的不同的地方是一經發布于區塊鏈上就無法修改不能直接在原有的合約上直接修改再重新發布。 本文首發于深入淺出區塊鏈社區原文鏈接:如何編寫一個可升級的智能合約原文已更新,請讀者前往原文閱讀 區塊鏈信任基礎的數據不可修改的特性,讓它傳統應用...

    Euphoria 評論0 收藏0

發表評論

0條評論

tabalt

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<