Solidty語法總結

2021-10-17 23:28:05 字數 2602 閱讀 7995

pragma solidity ^0.4.19; 

它告訴我們源**是為[0.4.19,0.5.0] 版本編寫的

pragma solidity >=0.4.22 <0.7.0;

它告訴我們源**是為[0.4.22,0.7.0] 版本編寫的

contract 合約名字{}
int uint uint8/32/64...256

bool

fixed/ufixed 定點數

address 位址 .balance獲取餘額 .transfer轉移 判空 !=address(0)

隱式轉換

顯式轉換 :轉化後型別 新變數 = **化後型別)原變數;

uint轉bytes

function tobytes(uint256 x) returns (bytes b)

}string轉bytes 顯示轉換

stirng轉bytes32

function stringtobytesver2(string memory source) returns (bytes32 result)

}

storage 永久資料,高成本

memory 臨時資料,函式內生效

calldata 不可修改的非永續性資料位

stack 由evm維護的非永續性數

動態:未確定空間大小

靜態:確定空間大小

方法:push(返回值為新的索引),length

初始化:uint a[3]=[1,2,3]

同型別的資料連續的儲存可以節省gas

msg.sender

指的是當前調⽤用者(或智慧型合約)的 address

無腦用require就完事了

//assert 式異常消耗了所有可用的呼叫 gas ,而從 metropolis 版本起 require 式的異常不會消耗任何 gas

assert(bool condition)

−如果不滿足條件,此方法呼叫將導致乙個無效的操作碼,

對狀態所做的任何更改將被還原。

這個方法是用來處理內部錯誤的。

require(bool condition)

−如果不滿足條件,此方法呼叫將恢復到原始狀態。

此方法用於檢查輸入或外部元件的錯誤。

require(bool condition, string memory message)

−如果不滿足條件,此方法呼叫將恢復到原始狀態。

此方法用於檢查輸入或外部元件的錯誤。

它提供了乙個提供自定義訊息的選項。

revert()

−此方法將中止執行並將所做的更改還原為執行前狀態。

revert(string memory reason)

−此方法將中止執行並將所做的更改還原為執行前狀態。

它提供了乙個提供自定義訊息的選項。

keccak256(string)
function + 函式的名字

+(傳遞給函式的引數,包括引數的名稱和型別)

+函式可見性

+函式修飾符

+returns (返回的型別,若有多個,以逗號分隔)

用於設定函式的可見範圍

public:public 是預設值,設定為 public 的函式可以被其他合約和本合約內部呼叫。

external:類似於 public 函式,唯⼀一的區別在於不能在合約內部呼叫,除非在呼叫時申明關鍵字 this。

internal:internal 函式只能被合約內部的函式呼叫。

private:類似於 internal 函式,唯一的區別在於 private 函式不能被當前合約所派生的子合約呼叫。

影響函式的行為

view/constant: 當函式被定義為 view,意味著它不對任何狀態進行修改,只能讀取資料不能更改資料。

pure:pure 函式不會讀取或寫入任何資料。函式只能處理引數,返回值給呼叫方。

payable:payable 函式用於接受外部的支付。

modifier :可以像函式一樣接收引數,修飾符的最後一行為 _;,表示修飾符呼叫結束後返回,並執行呼叫函式餘下的部分

constructor(變數型別和變數名) 函式可見性
宣告事件 event 事件名(元素型別 元素);

觸發事件 emit 事件名(元素型別 元素);

solidity支援單繼承和多繼承

contract 合約名字 is 繼承的父類

在solidity 0.6.x 版本之後,介面類似於抽象合約,可以使用inte***ce關鍵字建立

inte***ce calculator

在之前的版本直接用contact代替inte***ce

C 語法總結

1 const 與volatile 的用法 1 const include include 行引數指向const 型別變數的指標 void display c cons int pi 6 new 與delete 運算子 double pd define pointer variable pd new...

C 語法總結

1 const 與volatile 的用法 1 const include include 行引數指向const 型別變數的指標 void display c cons int pi 6 new 與delete 運算子 double pd define pointer variable pd new...

C 語法總結

語法 例子 類的通式 class class nameobject list class vehicle int vehicle range 建構函式 class name class myclass myclass myclass myclass myclass 拷貝建構函式 classname ...