五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

關(guān)于mapping

2023-02-22 06:56 作者:東風(fēng)草綠  | 我要投稿

????mapping是一個有點特殊性的數(shù)據(jù)類型,比如

  1. 它不能遍歷

  2. 不能出現(xiàn)在合約公有函數(shù)的參數(shù)和返回值中

  3. 事實上它也不能進行值拷貝,比如將一個mapping類型的成員變量賦值給另一個mapping類型的成員變量

? ? 以上三個特質(zhì)并不是平行關(guān)系,不能遍歷是更根本的屬性,因為不能遍歷,所以無法拷貝,因為拷貝就是一種搬運過程,搬運總要先能把東西找全。傳參或返回值也一樣,也是數(shù)據(jù)的搬運。

????沒有遍歷能力的技術(shù)原因在于mapping在storage中的存儲方式。當根據(jù)key去取一個value時,是根據(jù)這個mapping的slot位置下標和key值按照某種算法算出value在storage中的位置,取到它。對于任何key都能夠算出一個位置取到一個value,哪怕這個key從來沒有被存過。這意味著任何mapping成員變量的大小都是2的256次方,顯然是無法遍歷的。

????說無法遍歷是計算的邏輯,因為2的256次方的計算復(fù)雜度不具可行性,但是純粹的邏輯上,mapping有大小,也能遍歷。只是大到難以想象。

????mapping在library的public函數(shù)中可以出現(xiàn),這是因為這時這個public函數(shù)是delagatecall調(diào)用,本質(zhì)上是庫函數(shù)調(diào)用者合約的內(nèi)部調(diào)用,自然可以進行引用傳遞,不會觸發(fā)值拷貝。

????這些問題的來龍去脈,一般教程和官方文檔也是不作梳理,只是羅列,這里記一下。


關(guān)于mapping的評論 (共 條)

分享到微博請遵守國家法律
甘洛县| 宜黄县| 常宁市| 淮南市| 韶山市| 昭苏县| 安塞县| 宁南县| 余江县| 宜都市| 苏尼特右旗| 绥中县| 昭苏县| 东海县| 札达县| 芦溪县| 隆林| 桐乡市| 平乡县| 余江县| 鄂伦春自治旗| 汝阳县| 鹤庆县| 宝山区| 台南市| 斗六市| 兴宁市| 墨竹工卡县| 淮北市| 收藏| 丹东市| 芜湖县| 平武县| 宁蒗| 宁武县| 浙江省| 海晏县| 仁化县| 长泰县| 洪雅县| 株洲市|