iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 4
0
自我挑戰組

從零開始摸索智能合約系列 第 5

Solidity 基礎語法

  • 分享至 

  • xImage
  •  

入門

理論上,入門一款語法,應該要在編輯器撰寫萬年老梗Hello World。

而solidity因為本身的特殊性,以太坊社區也有提供集成開發環境Remix。

不過因為我個人想要從更輕鬆的角度入門,並寫寫看solidity。

所以我是從CryptoZombies入門。透過建造殭屍工廠的遊戲,來學習solidity語法。

因此本章會是個人練習後的筆記形式。

版本宣告

  • 每次建立合約前,必須聲明solidity採用的版本
// 標準格式如下:

pragma solidity ^0.4.19;

contract myContract {

}
  • 書寫格式相當類似js,太久沒用分號,導致剛開始找不到error的原因。

狀態變量

  • 狀態變量會被永久存入合約中,近似於寫入database。
// 宣告變數的方式,也與js非常雷同
// contract建立一個合約外層,並在合約內建立變數

contract myExample {
    // 建立一個變數myNumber,指定其為uint類型並給予賦值
    uint myNumber = 10;
}

加減運算

  • solidity的數學計算,明確直白,就是一般數學符號進行計算。
 1 + 1
 2 - 1
 10 * 2
 6 / 3
 平方運算
 2 ** 2
 
 因此我們也可以宣告一個變數來當作運算用數字
 
 contract math {
     uint firstNumber = 2;
     uint secondNumber = 2 ** firstNumber;
 }

結構體

  • solidity提供一種名為結構體的數據類型表示方法。
  • 結構體允許生成複雜的數據類型,同時擁有多個屬性。
e.g.

    struct Me {
        uint age;
        string name;
    }
  • 上述代碼中,合約內的uint、string為類型,後者則是被聲明的對象。

數組

  • solidity有兩種數組類型,分別是靜態與動態。
// 靜態

uint[7] fixedArray; //固定長度為7的靜態數組
string[2] stringArray; //固定長度為2且是string類型的靜態數組
uint[] dynamicArray; //長度不定的動態數組
  • 公共數組,提供保存公共數據,僅供其他合約讀取數據,而不能寫入。
// 使用public聲明公共數組

myName[] public me;

上一篇
替荷包君增肥
下一篇
Remix集成開發環境
系列文
從零開始摸索智能合約12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言