91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solidity基礎知識有哪些

發布時間:2021-12-07 15:51:49 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

這篇文章主要介紹“solidity基礎知識有哪些”,在日常操作中,相信很多人在solidity基礎知識有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”solidity基礎知識有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!


框架
    就像其他語言的HelloWorld一樣,使用solidity寫智能合約的框架如下:
    contract Helloworld{
    ……
    }


版本指令
    每個智能合約文件第一行指定solidity編譯器版本號,格式如下:
    pragma solidity ^版本號;
    栗子:
    pragma solidity ^0.4.19;


狀態變量
    狀態變量是被永久地保存在合約中。也就是說它們被寫入以太幣區塊鏈中。可以用storage標識。
    對應狀態變量,單節點上不需要同步的變量可以用memory標識,標識該變量存儲于內存中,不需要被寫入區塊鏈。


整數
    solidity內的整數可以使用uint來標識。uint默認為uint256,代表是一個256位無符號整型,對應有uint8,uint16,uint32等。


運算符
    solidity內的運算符與其他語言相似,+,-,*,/等等。


結構體
solidity內的結構體與其他語言相似:
struct Person{
        string name;
        bool sexual;
    ……
}
這里有一點要注意的是同類型變量最好放在一起,這樣可以節省空間:
struct Person{
        string name;
        string hairColor;
        bool sexual;
        uint8 age;
    ……
}


類型轉換

uint a;

uint8 b;

uint8 c;

//c = a+b; //編譯器不給過,因為a和b類型不同

c=uint8(a)+b;


數組
solidity支持靜態和動態數組:
uint[2] a;
uint[] b;
還可以支持結構體數組:
Person[] people;
公共數組
你可以定義 public 數組, Solidity會自動創建 getter 方法. 語法如下:

Person[] public people;
其它的合約可以從這個數組讀取數據(但不能寫入數據),所以這在合約中是一個有用的保存公共數據的模式。

在函數尾部增加新元素

people.push(Person("eddie",true));


函數
類似JS:
function example(string  _a,uint _b) returns (string){
    string s;
    return s;
}

習慣:

參數都使用_開頭。


函數修飾符
public:    合約內外均可調用。
private:合約內可調用。
internal:合約內和繼承合約的可調用。
external:合約外可調用。
栗子:

contract example{

    function _aaa(uint _a)private{
    }

}

習慣:

當函數為私有時,函數名以_開頭。


modifier:指明修飾符體
栗子:

contract example{

    modifier aboveMinEth(){
        require (msg.value >= 0.001 ether);     //require:條件判斷語句,為否則函數體不執行。
        _;    //繼續執行函數體。
    }

     function aaa(uint _a) public aboveMinEth {

    ……;   

    }

}

view:沒有改變任何值或者寫任何東西,最多只有讀操作。

pure:沒有讀寫操作,只根據輸入值來決定輸出值。

contract example{

    uint a=9;

    function add1(uint _b)public view returns(uint){

        return  a+_b;

    }

    function add2(uint _b,uint _c)public pure returns(uint){

        return  _b+_c;

    }

}


事件

事件是合約與區塊鏈之間通訊的一種機制。

contract example{

    uint a=9;

    event addsomething(uint _x,uint _y,uint result);    //建立事件

    function add2(uint _b,uint _c)public pure returns(uint){

        addsomething(_b,_c,_b+_c);    //觸發事件,通知app

        return  _b+_c;

    }

}


到此,關于“solidity基礎知識有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛浦县| 景宁| 琼海市| 宣武区| 平山县| 虹口区| 扎赉特旗| 宝坻区| 泸定县| 陆丰市| 温州市| 高陵县| 平和县| 琼结县| 河南省| 宁陕县| 泰宁县| 龙陵县| 涞源县| 南康市| 百色市| 延安市| 关岭| 垣曲县| 柳林县| 承德市| 尚义县| 高淳县| 黔东| 彭阳县| 江北区| 黎平县| 怀化市| 浦江县| 原平市| 陆良县| 彭泽县| 固原市| 灵台县| 彭州市| 龙江县|