成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

solidity的delete操作匯總

Eminjannn / 1817人閱讀

摘要:刪除枚舉類(lèi)型時(shí),會(huì)將其值重置為序號(hào)為的值。刪除結(jié)構(gòu)體刪除結(jié)構(gòu)體,會(huì)將所有成員變量置為初值。刪除數(shù)組對(duì)于定長(zhǎng)數(shù)組,刪除時(shí),是將數(shù)組內(nèi)所有元素置為初值。注意事項(xiàng)刪除的本質(zhì)是初始化變量。但可對(duì)其引用的對(duì)象進(jìn)行操作。

簡(jiǎn)介

Solidity中的特殊操作符delete用于釋放空間,為鼓勵(lì)主動(dòng)對(duì)空間的回收,釋放空間將會(huì)返還一些gas。

delete操作符可以用于任何變量,將其設(shè)置成默認(rèn)值0。

刪除枚舉類(lèi)型時(shí),會(huì)將其值重置為序號(hào)為0的值。

如果對(duì)動(dòng)態(tài)數(shù)組使用delete,則刪除所有元素,其長(zhǎng)度變?yōu)?。

如果對(duì)靜態(tài)數(shù)組使用delete,則重置所有索引。

如果對(duì)map類(lèi)型使用delete,什么都不會(huì)發(fā)生。

如果對(duì)map類(lèi)型中的一個(gè)鍵使用delete,則會(huì)刪除與該鍵相關(guān)的值。

刪除基本類(lèi)型

使用delete刪除基本類(lèi)型會(huì)設(shè)置為對(duì)應(yīng)的初始值。

pragma solidity ^0.5.10;

contract DeleteDemo{
    
    bool public b  = true;
    uint public i = 1; 
    address public addr = msg.sender;
    bytes public varByte = "123";
    string  public str = "abc";
    enum Color{RED,GREEN,YELLOW}
    Color public color = Color.GREEN;
    
    function deleteAttr() public {
        delete b; // false
        delete i; // 0
        delete addr; // 0x0
        delete varByte; // 0x
        delete str; // ""
        delete color;//Color.RED
    }
}
刪除結(jié)構(gòu)體

刪除結(jié)構(gòu)體,會(huì)將所有成員變量置為初值。

struct Person{
    string name;
    uint age;
}

Person public p = Person("zhangsan",21);
function deletePerson() public{
    delete p;
}

調(diào)用改方法之后,結(jié)構(gòu)體Person的name將變?yōu)榭?,age將變?yōu)?。

刪除mapping

映射是一個(gè)特殊的存在,由于映射的鍵并不總是能有效遍歷,所以不能直接刪除一個(gè)映射。如果直接刪除一個(gè)映射會(huì)報(bào)錯(cuò)Unary operator delete cannot be applied。但可以指定鍵來(lái)刪除映射中的某一項(xiàng)。

mapping[msg.sender] = 1;
//可以按key刪除映射 
delete mapping[msg.sender];

如果刪除一個(gè)結(jié)構(gòu)體時(shí),其中含有映射類(lèi)型,會(huì)跳過(guò)映射類(lèi)型。也就是說(shuō),結(jié)構(gòu)體的其他內(nèi)容會(huì)被初始化,而其中mapping中的內(nèi)容不會(huì)改變。

刪除數(shù)組

對(duì)于定長(zhǎng)數(shù)組,刪除時(shí),是將數(shù)組內(nèi)所有元素置為初值。

對(duì)于變長(zhǎng)數(shù)組時(shí),則是將長(zhǎng)度置為0。

可以刪除數(shù)組的一個(gè)元素,刪除一個(gè)元素后,數(shù)組中對(duì)應(yīng)位置的值會(huì)被初始值,其它值不受影響。

刪除時(shí)gas的處理

刪除時(shí)忽略映射和刪除數(shù)組中某個(gè)位置的值僅初始化改值而不重組數(shù)組都是考慮到節(jié)省gas。如果映射或數(shù)組非常大的情況下,刪除或維護(hù)它們將變得非常消耗gas。

清理空間的額外好處是可以獲得gas返還,但對(duì)無(wú)特別意義的數(shù)組的整理和刪除,只會(huì)消耗更多gas,需要在業(yè)務(wù)實(shí)現(xiàn)上進(jìn)行權(quán)衡。

注意事項(xiàng)

刪除的本質(zhì)是初始化變量。所以刪除storage的引用時(shí)會(huì)報(bào)錯(cuò),因?yàn)閟torage的引用并沒(méi)有自己已分配的存儲(chǔ)空間,所以不能對(duì)storage的引用直接賦初值。

但可對(duì)其引用的對(duì)象進(jìn)行delete操作。

原文鏈接:http://www.choupangxia.com/20...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75644.html

相關(guān)文章

  • 近階段前端面試問(wèn)題匯總(css篇)

    摘要:在此記錄一下被提問(wèn)的問(wèn)題吧論水平也就是初級(jí)前端,所以很多問(wèn)題也是挺簡(jiǎn)單的。為了直觀和調(diào)試的方便,我們把屬性這么寫(xiě)其實(shí)對(duì)于作三角形這一目的,邊框的風(fēng)格并不重要,所以在這里不多做研究。 經(jīng)歷了各種選擇與被選擇之后(其實(shí)就是被坑了),最終又離開(kāi)了平靜乃至頹廢的劃水崗位,重新跳入前端求職的大鍋,繼續(xù)翻騰。在此記錄一下被提問(wèn)的問(wèn)題吧(論水平也就是初級(jí)前端,所以很多問(wèn)題也是挺簡(jiǎn)單的)。 css篇:...

    鄒強(qiáng) 評(píng)論0 收藏0
  • 20 個(gè) CSS 高級(jí)技巧匯總

    摘要:當(dāng)然,如果你的新元素有兄弟元素的話(huà),也可以使用通用的兄弟選擇符頁(yè)面頂部陰影下面這個(gè)簡(jiǎn)單的代碼片段可以給網(wǎng)頁(yè)加上漂亮的頂部陰影效果給添加行高你不需要分別添加到每個(gè)標(biāo)記等。 使用技巧會(huì)讓人變的越來(lái)越懶,沒(méi)錯(cuò),我就是想讓你變懶。下面是我收集的CSS高級(jí)技巧,希望你懶出境界。 1. 黑白圖像 這段代碼會(huì)讓你的彩色照片顯示為黑白照片,是不是很酷? img.desaturate { fil...

    Java3y 評(píng)論0 收藏0
  • 2019前端面試題匯總(主要為Vue)

    摘要:畢業(yè)之后就在一直合肥小公司工作,沒(méi)有老司機(jī)沒(méi)有技術(shù)氛圍,在技術(shù)的道路上我只能獨(dú)自摸索。于是乎,我果斷辭職,在新年開(kāi)工之際來(lái)到杭州,這里的互聯(lián)網(wǎng)公司應(yīng)該是合肥的幾十倍吧。。。。 畢業(yè)之后就在一直合肥小公司工作,沒(méi)有老司機(jī)、沒(méi)有技術(shù)氛圍,在技術(shù)的道路上我只能獨(dú)自摸索。老板也只會(huì)畫(huà)餅充饑,前途一片迷??床坏饺魏蜗M?。于是乎,我果斷辭職,在新年開(kāi)工之際來(lái)到杭州,這里的互聯(lián)網(wǎng)公司應(yīng)該是合肥的幾十...

    arashicage 評(píng)論0 收藏0
  • 關(guān)于css兼容性問(wèn)題及一些常見(jiàn)問(wèn)題匯總

    摘要:解決辦法添加復(fù)制內(nèi)容到剪貼板一行右側(cè)第一個(gè)元素有雙邊距一行左側(cè)第一個(gè)元素有雙邊距在,下,自身沒(méi)浮動(dòng),但是的內(nèi)容有浮動(dòng),下邊就會(huì)產(chǎn)生一個(gè)間隙解決辦法給加浮動(dòng)給加注意當(dāng)下最小高度問(wèn)題,和的間隙問(wèn)題共存的時(shí)候,給加浮動(dòng)才能解決。目前主流瀏覽器的兼容性做的都比較好了,本文主要針對(duì)IE6,7的不兼容問(wèn)題進(jìn)行解決。 1.圓盤(pán)時(shí)鐘有浮動(dòng)存在時(shí),計(jì)算一定要精確,不要讓內(nèi)容的寬高超出我們所設(shè)置的寬高,IE6下...

    seanlook 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<