Solidity語言學習筆記————1、初識Solidity語言

FLy_鵬程萬里發表於2018-06-19

什麼是Solidity語言?

Solidity是一種智慧合約高階語言,執行在Ethereum虛擬機器(EVM)上。

Solidity與其他語言相關的特點?

Solidity的語法接近於Javascript,是一種物件導向的語言。但作為一種真正意義上執行在網路上的去中心合約,它又有很多的不同,下面列舉一些:

  • 以太坊底層是基於帳戶,而非UTXO的,所以有一個特殊的Address的資料型別用於定位使用者,定位合約,定位合約的程式碼(合約本身也是一個帳戶)。
  • 由於語言內嵌框架是支援支付的,所以提供了一些關鍵字,如payable,可以在語言層面直接支援支付,而且超級簡單。
  • 儲存是使用網路上的區塊鏈,資料的每一個狀態都可以永久儲存,所以需要確定變數使用記憶體,還是區塊鏈。
  • 執行環境是在去中心化的網路上,會比較強調合約或函式執行的呼叫的方式。因為原來一個簡單的函式呼叫變為了一個網路上的節點中的程式碼執行,分散式的感覺。
  • 最後一個非常大的不同則是它的異常機制,一旦出現異常,所有的執行都將會被回撤,這主要是為了保證合約執行的原子性,以避免中間狀態出現的資料不一致。

第一個Solidity程式

首先我們使用Solidity來編寫一個Hello world!程式:

pragma solidity ^0.4.0;  //指定編譯器版本

contract addressTest{    //合約
    uint balance;       //全域性變數
    function update(uint amount) returns (address, uint){ //內部函式
        balance += amount;
        return (msg.sender, balance);
    }
}

如果你學過基礎的物件導向的程式語言(例如:java\C++\python等),那麼上面的這些內容你會覺得非常輕鬆的就可以看懂!在之後的課程內容當中會繼續介紹相關的知識內容!

後續內容會持續更新,敬請期待!

相關文章