單雙幣質押流動性挖礦dapp系統開發智慧合約模式定製邏輯

nice1022發表於2023-03-08

變數

1、狀態變數

Solidity 支援三種型別的變數:開發I34-案例I633-演示53I9


狀態變數 – 變數值儲存在合約儲存空間中的變數。

區域性變數 – 變數值僅在函式執行過程中有效的變數,函式退出後,變數。

全域性變數 – 儲存在全域性名稱空間,用於獲取區塊鏈相關資訊的特殊變數。

Solidity 是一種靜態型別語言,這意味著需要在宣告期間指定變數型別。每個變數宣告時,都有一個基於其型別的預設值。沒有undefined或null的概念。


pragma solidity ^0.4.22;

contract SolidityTest1{

    uint storedDate; //狀態變數

    

    constructor() public {

        storedDate = 10; //使用狀態變數

    }

}


2、區域性變數

變數值僅在函式執行過程中有效的變數,函式退出後,變數。函式引數是區域性變數


pragma solidity ^0.4.22;


contract SolidityTest2{

    uint storedDate; //狀態變數

    constructor() public{

        storedDate = 10;

    }

    

    function getResult() public view returns(uint){

        uint a=1;  //區域性變數

        uint b=2;

        uint result = a+b;

        return result;//訪問區域性變數

    }

}


3、全域性變數

這些是全域性工作區中存在的特殊變數,提供有關區塊鏈和交易屬性的資訊。


名稱 返回

blockhash(uint blockNumber) returns (bytes32) 給定區塊的雜湊值 – 只適用於256最近區塊, 不包含當前區塊。

block.coinbase (address payable) 當前區塊礦工的地址

block.difficulty (uint) 當前區塊的難度

block.gaslimit (uint) 當前區塊的gaslimit

block.number (uint) 當前區塊的number

block.timestamp (uint) 當前區塊的時間戳,為unix紀元以來的秒

gasleft() returns (uint256) 剩餘 gas

msg.data (bytes calldata) 完成 calldata

msg.sender (address payable) 訊息傳送者 (當前 caller)

msg.sig (bytes4) calldata的前四個位元組 (function identifier)

msg.value (uint) 當前訊息的wei值

now (uint) 當前塊的時間戳

tx.gasprice (uint) 交易的gas價格

tx.origin (address payable) 交易的傳送方


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

相關文章