Soildity內建全域性變數與函式(5)

2021-09-16 12:04:59 字數 1887 閱讀 4573

soildity語言為了方便開發人員進行合約**的編寫,在語言設計時內建了一些單位,變數和函式,下面將為大家一一介紹。

1. 內建單位

1.1 貨幣單位

乙個字面量的數字可以使用 wei、finney、szabo、ether等字尾表示不同的額度,其換算關係如下:

1 ether == 10^3 finney

1 ether == 10^6 szabo

1 ether == 10^18 wei

1.2 時間單位

1 == 1 seconds (預設單位)

1 minutes == 60 seconds

1 hours == 60 minutes

1 days == 24 hours

1 weeks = 7 days

1 years = 365 days

2. 全域性變數

block.difficulty:型別為uint,表示當前區塊的挖礦難度

block.gaslimit:型別為uint,表示當前區塊的gas限制

block.number:型別為uint,表示當前的區塊編號

block.timestamp:型別為uint,以unix時間戳的形式表示當前區塊的產生時間

msg.data:型別為bytes,表示完整的呼叫資料

msg.gas:型別為uint,表示剩餘的gas

msg.sig:型別為bytes4,呼叫資料的前4位元組,函式識別符號

msg.value:型別為uint,表示該訊息轉賬的以太幣數額,單位為wei

now:型別為uint,表示當前時間

tx.gasprice:型別為uint,表示當前交易的gas**

tx.origin:型別為address,表示完整呼叫鏈的發起者

3. 內建函式

3.1 區塊函式

block.blockhash(uint blocknumber) returns (bytes32):獲取指定區塊的雜湊值,只對不包括當前區塊的256個最近的區塊有效
3.2 異常處理函式

assert(bool condition):當條件不為真時丟擲異常,用於處理內部錯誤

require(bool condition):當條件不為真時丟擲異常,用於處理輸入或者來自外部模組的錯誤

revert():中斷程式執行並且回退狀態改變

3.3 數學和加密演算法函式

addmod(uint x,uint y,uint k) returns (uint):計算(x+y)%k

mulmod(uint x,uint y,uint k) returns (uint):計算(x*y)%k

keccak256(...) returns(bytes32):計算ethereum-sha3(keccak-256)雜湊值

sha3(...) returns (bytes32):keccak256()方法的別名

sha256(...) returns (bytes32):計算sha-256雜湊值

ripemd1606(...) returns (bytes20):計算ripemd160雜湊值

3.4 合約函式

suicide(address recipient):selfestruct函式的別名

以上是本人目前總結到的soildity所有內建的一些變數和函式,後續有更新將補充!

Python內建全域性變數

python 內建全域性變數 doc 表示對py檔案的注釋 file 表示當前py檔案的絕對路徑 package 表示匯入模組py檔案的所在包 cached 表示快取檔案 python內部的優化機制,當匯入別的模組時,會直接將生成的位元組碼檔案匯入,省略了python原始檔到位元組碼檔案的轉換 na...

C 靜態全域性變數與普通全域性變數

一 儲存區域 1 棧 由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區域。通常儲存區域性變數,函式引數。2 堆 由new分配的記憶體塊,需要手動釋放。如果程式設計師沒有手動釋放,在程式執行結束後,作業系統自動 3 自由儲存區 由malloc等分配的記憶體塊,與堆相似,用free來釋放。...

static全域性變數與普通的全域性變數

一 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是...