Uniswap丨justswap丨pancakeswap系統開發(去中心化DAPP)

a1271916008發表於2023-04-25

  隨著以太坊區塊鏈和EVM的興起,許多旨在解決以太坊可擴充套件性限制或昂貴交易成本的不同網路選擇開發與EVM完全相容的框架。這意味著與EVM相容的鏈都共享相同的軟體層——即Solidity——執行智慧合約。


  與EVM相容的區塊鏈允許開發人員利用專門為EVM鏈構建的所有相同工具、檔案和社群,從而節省時間和金錢。


  與EVM相容的第1層


  第一行程式碼是告訴編譯器如何編譯這段程式碼,也就是匯入solidity版本包,不同的版本包可以一些程式碼變數無法使用貨相容。一般在第三位的變動較小。pragma solidity^0.4.24;


  address public minter;關鍵宇public用來表示狀態變數的可見性,這一點和其他語言如Java和C++是類似的,不同的是這行程式碼宣告瞭一個可以被公開訪問的地址型別(address)的狀態變數,Solid町的編譯器會自動為public狀態變數生成一個訪問函式。


  function minter()returns(address){return minter;}


  注意,我們沒有必要自己新增這個函式,如果我們新增了一個同名的函式,編譯器生成的將不再生效。


  mapping(address=>uint)public balances;


  這行程式碼建立了另一個public狀態變數,它的資料型別是更加複雜的mapping(在本書第4章中會進一步講解〉,該型別儲存一個個鍵值對。mapping可以被看作一個雜湊表,它會執行虛擬初始化,使所有可能存在的鍵都對應一個全零的值。不過和其他語言中的mapping不一樣的是,Solidity中的mapping不能遍歷訪問(無法獲得所有鍵或值的列表),對於同樣的public狀態變數,編譯器會為它生成一個訪問函式,函式程式碼如下:


  function balances(address _account)public view returns(uint){


  return balances[_account];


  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983064/viewspace-2948603/,如需轉載,請註明出處,否則將追究法律責任。

相關文章