摘要:固定長(zhǎng)度的數(shù)組固定長(zhǎng)度數(shù)組聲明直接在定義數(shù)組的時(shí)候聲明固定長(zhǎng)度數(shù)組的值可通過數(shù)組的屬性來獲得數(shù)組的長(zhǎng)度,進(jìn)而進(jìn)行遍歷操作。動(dòng)態(tài)數(shù)組獲取長(zhǎng)度方式與靜態(tài)數(shù)組一直,但動(dòng)態(tài)數(shù)組可以直接修改數(shù)組長(zhǎng)度,而不會(huì)出現(xiàn)編譯不通過的情況。
固定長(zhǎng)度的數(shù)組 固定長(zhǎng)度數(shù)組聲明
直接在定義數(shù)組的時(shí)候聲明固定長(zhǎng)度數(shù)組的值:
uint[5] fixedArr = [1,2,3,4,5];
可通過數(shù)組的length屬性來獲得數(shù)組的長(zhǎng)度,進(jìn)而進(jìn)行遍歷操作。
// 通過for循環(huán)計(jì)算數(shù)組值的總和 function sum() public view returns (uint) { uint total = 0; for(uint i = 0; i < fixedArr.length; i++) { total += fixedArr[i]; } return total; }
固定長(zhǎng)度數(shù)組無法修改數(shù)組長(zhǎng)度,否則編譯直接會(huì)報(bào)錯(cuò):
TypeError: Expression has to be an lvalue. fixedArr.length = len;
但可對(duì)數(shù)組中的值進(jìn)行修改。
function updateValue(uint index,uint value) public { fixedArr[index] = value; }可變長(zhǎng)度數(shù)組
可變長(zhǎng)度類型數(shù)組的聲明:
uint[] unfixedArr = [1,2,3,4,5]; // 或 uint[] unfixedArr;
可變長(zhǎng)度數(shù)組也可通過同樣的方法進(jìn)行遍歷求和:
// 通過for循環(huán)計(jì)算數(shù)組值的總和 function sum() public view returns (uint) { uint total = 0; for(uint i = 0; i < unfixedArr.length; i++) { total += unfixedArr[i]; } return total; }
其中第二種情況未聲明數(shù)組內(nèi)容時(shí),可通過直接通過push向數(shù)組中添加值,或初始化一個(gè)數(shù)組然后再賦值。
unfixedArr.push(1); 或 unfixedArr = new uint[](1); unfixedArr[0] = 0;
其中第二種方法通過索引進(jìn)行設(shè)置值時(shí),該數(shù)組必須先被初始化,否則會(huì)拋出異常。
動(dòng)態(tài)數(shù)組獲取長(zhǎng)度方式與靜態(tài)數(shù)組一直,但動(dòng)態(tài)數(shù)組可以直接修改數(shù)組長(zhǎng)度,而不會(huì)出現(xiàn)編譯不通過的情況。
unfixedArr.length = len;
上面已經(jīng)可以看到,可以通過push方法向動(dòng)態(tài)數(shù)組中添加元素。
原文鏈接:https://www.choupangxia.com/2...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/75760.html
摘要:還需注意的一點(diǎn)是,定長(zhǎng)數(shù)組,不能與變長(zhǎng)數(shù)組相互賦值,我們來看下面的代碼無法編譯已經(jīng)計(jì)劃在未來移除這樣的限制。的變長(zhǎng)數(shù)組,可以通過給賦值調(diào)整數(shù)組長(zhǎng)度。的變長(zhǎng)數(shù)組不支持。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:智能合約語言Solidity教程系列5 - 數(shù)組介紹原文已更新,請(qǐng)讀者前往原文閱讀 Solidity 教程系列第5篇 - Solidity 數(shù)組介紹。Solidity 系列完整的文章...
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接智能合約語言教程系列地址類型介紹原文已更新,請(qǐng)讀者前往原文閱讀現(xiàn)在的中文文檔,要么翻譯的太爛,要么太舊,決定重新翻譯下。枚舉類型應(yīng)至少有一名成員。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:智能合約語言 Solidity 教程系列2 - 地址類型介紹原文已更新,請(qǐng)讀者前往原文閱讀 現(xiàn)在的Solidity中文文檔,要么翻譯的太爛,要么太舊,決定重新翻譯下。...
摘要:刪除枚舉類型時(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。 刪除...
閱讀 2073·2023-04-25 17:48
閱讀 3585·2021-09-22 15:37
閱讀 2938·2021-09-22 15:36
閱讀 5995·2021-09-22 15:06
閱讀 1641·2019-08-30 15:53
閱讀 1428·2019-08-30 15:52
閱讀 711·2019-08-30 13:48
閱讀 1122·2019-08-30 12:44