iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 17
0
Blockchain

以太坊-探索智能合約的多種面向系列 第 17

Day 17 Solidity 語法類型(三)

  • 分享至 

  • xImage
  •  

Day 17:

        6.陣列-2
		陣列可以宣告為靜態或動態。
		(1).靜態陣列
		靜態的陣列在宣告時需要
		指定陣列長度並且在後續的使用中不能修改長度。
		Example:
			uint[5] x;   /* 靜態陣列 */

			uint[5] x=[1,2,3,4,5]; /* 靜態陣列初始化 */
			// 更改陣列元素
			x[0] = 6;  /* x = [6,2,3,4,5] */
			// length 長度 
			uint x_length = x.length; /* 返回陣列長度 */

		(2).動態陣列
		動態陣列在宣告時,不需要指定陣列長度,並且再
		後續的使用,可以動態修改陣列長度。
		Example:
			bytes32[] names; // 動態陣列,Default長度為 0
			//or 初始化為一個長度為5的動態陣列
			bytes32 names = new bytes32[] (5);

			// push 添加元素,返回新陣列的長度
			uint newLength = name.push("gcc2ge");
			newLength = names.push("shouhewu");

			// 修改陣列中的元素
			names[0] = bytes32("Danielwu");

			//length 
			names.length; // 取得陣列長度
		(3).多維陣列
			多維陣列可以宣告為動態或靜態,在solidity中多維陣列的
			列與行的定義方式與大多數的程式語言相反,舉例說明。
			Example:
				靜態:
				uint[3][5] x; /* 宣告 5列 3行的陣列 */

				動態:
				uint[][5] y; /* 5列的行動態陣列 */
				//特性
				y[0].push(uint(1)); /* 添加元素,返回行長度 */
				y[0].length = 10; /* 設置行數 */

				uint[3][] z; // 3行的列動態陣列
				z.push([1,2,3]); // 添加元素,返回新陣列的列數
				z.length = 10; // 設置列數
	7.結構
		結構是Solidity中的自定義資料類型,可以包含
		字串,整數,陣列,映射,結構,等等的資料類型.
		在Solidity中需要使用struct來定義結構。
		Example:
			// 定義結構
			struct Bank {
				address owner;
				uint balance;
			}

			// 初始化
			(1).
			Bank b = Bank({
				owner:msg.sender,
				balance:5
			});

			(2).
			Bank c(msg.sender, 5);

			c.balance = 15; // 重新賦值

			// 重置所有變數為0, 除了映射類型
			delete c;

上一篇
Day 16 Solidity 語法類型(二)
下一篇
Day 18 Solidity 語法類型(四)
系列文
以太坊-探索智能合約的多種面向20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言