您好,登錄后才能下訂單哦!
###定義時,不用初始化mapping
1、結構體中的變量,在定義的時候是不能缺省的,但是結構體中的mapping映射除外。
2、在memory中的結構體變量s是不能夠操作其中mapping映射。這是由于mapping映射只能夠存儲在storage空間中
1 | struct student{ |
3、要想操作結構體中的mapping映射,那么必須要將結構體定義為狀態變量。
如下面的例子中,定義了狀態變量 student stu。因此可以操作其mapping映射。
下例中的變量guy在棧中,對于guy的操作視同于對于狀態變量stu的操作。
1 | contract structdeep{ |
函數參數為結構體時,由于函數參數是在memory的空間中,因此默認時memory屬性。必須要用memroy來接受,不能使用storage類型來接受。
1 |
|
1 |
|
1 | struct student{ |
如果希望使用到storage來接受,那么需要強制為參數加上storage屬性。這時,傳遞的參數必須是狀態變量。
1 | function structParam2(student storage s) internal{ |
本文鏈接: https://dreamerjonson.com/2018/11/23/solidity-41-structdeep/
版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協議 許可協議。轉載請注明出處!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。