1. 程式人生 > >Solidity語言學習(1)—— 開篇

Solidity語言學習(1)—— 開篇

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

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

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

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