Solidity語言學習筆記————24、輸入輸出引數
輸入引數和輸出引數(Input Parameters and Output Parameters)
與JavaScript一樣,函式可以將多個引數作為輸入,但與Javascript和C不同的是,Solidity的函式可以返回任意數量的引數作為輸出。
輸入引數(Input Parameters)
輸入引數的宣告方式與變數相同。不過有一個不同之處:輸入引數中未使用的引數可以省略變數名。例如,假設我們希望我們的合同接受一個帶有兩個整數的外部呼叫,可以這樣寫:
pragma solidity ^0.4.16;
contract Simple {
function taker(uint _a, uint _b) public pure {
// do something with _a and _b.
}
}
輸出引數(Output Parameters)
在returns
關鍵字之後,可以用與輸入引數相同的語法宣告輸出引數。例如,函式返回兩個輸入引數給定整數的和與乘積,可以這樣寫:
pragma solidity ^0.4.16;
contract Simple {
function arithmetics(uint _a, uint _b)
public
pure
returns (uint o_sum, uint o_product)
{
o_sum = _a + _b;
o_product = _a * _b;
}
}
輸出引數的變數名可以省略。輸出值也可以使用return
語句指定。return
語句還能夠返回多個值。返回引數初始化為0;如果未顯式設定,它們會保持為0。
輸入引數和輸出引數可以用作函式體中的表示式,也可在賦值操作的左邊使用。
控制結構(Control Structures)
除了switch
和goto
,solidity的絕大多數控制結構均來自於JavaScript,if
, else
, while
, for
, break
, continue
, return
,?:
, 作用均和C / JavaScript中的一樣。
條件語句中的括號不能省略,但在單條語句前後的花括號可以省略。
注意,Solidity不能像C和JavaScrip那樣 ,從非布林型別型別到布林型別的轉換, 所以if (1){…}
在Solidity中並不合法。
返回多個值(Returning Multiple Values)
當函式具有多個輸出引數時,比如return (v0, v1, ..., vn)
可以返回多個值。元件的數量必須與輸出引數的數目相同。
相關文章
- 5,輸入與輸出(perl語言筆記)筆記
- docker學習筆記-啟動映象輸入引數Docker筆記
- 組合語言學習記錄--輸入輸出字串組合語言字串
- C++ 學習筆記之——輸入和輸出C++筆記
- C語言輸入輸出C語言
- Solidity語言學習筆記————1、初識Solidity語言Solid筆記
- 01_Numpy學習筆記(下):輸入和輸出筆記
- Solidity語言學習筆記————5、全域性變數Solid筆記變數
- Solidity語言學習筆記————4、常量Solid筆記
- Solidity語言學習筆記————36、 庫Solid筆記
- Solidity語言學習筆記————38、Solidity彙編Solid筆記
- Solidity語言學習筆記————12、陣列Solid筆記陣列
- Solidity語言學習筆記————33、事件(Events)Solid筆記事件
- Solidity語言學習筆記————37、Using forSolid筆記
- Solidity語言學習筆記————34、繼承Solid筆記繼承
- 笨辦法學C 練習24:輸入輸出和檔案
- C語言輸入一個數輸出對應的值C語言
- C語言的本質(24)——C標準庫之輸入與輸出(下)C語言
- JAVA筆記(12)——輸入和輸出Java筆記
- C++筆記:輸入輸出、變數、變數加減乘除C++筆記變數
- Solidity語言學習筆記————42、提示和技巧Solid筆記
- Solidity語言學習筆記————43、安全考量Solid筆記
- Solidity語言學習筆記————32、建立合約Solid筆記
- Solidity語言學習筆記————28、純函式Solid筆記函式
- Solidity語言學習筆記————26、回退函式Solid筆記函式
- 韓語學習筆記(1)音標與輸入法筆記
- Solidity語言學習筆記————7、單位和全域性變數Solid筆記變數
- Solidity語言學習筆記————6、全域性變數風格指南Solid筆記變數
- C語言學習日記(4)——輸出當前時間C語言
- Ubuntu下鍵盤輸入錯亂問題,輸入雙引號輸出的是@符號,輸入#號輸出的是未知語言的字元...Ubuntu符號字元
- Solidity語言學習筆記————41、記憶體佈局Solid筆記記憶體
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- Solidity語言學習筆記————10、布林型、整型Solid筆記
- Solidity語言學習筆記————3、Remix的基本使用Solid筆記REM
- Solidity語言學習筆記————15、結構體StructSolid筆記結構體Struct
- Solidity語言學習筆記————18、字串和函式Solid筆記字串函式
- Solidity語言學習筆記————14、左值運算子Solid筆記
- Solidity語言學習筆記————9、左值運算子Solid筆記