返回值
要想函數(shù)返回一個數(shù)值滤灯,按如下定義:
string greeting = "What's up dog";
function sayHello() public returns (string) {
return greeting;
}
Solidity 里,函數(shù)的定義里可包含返回值的數(shù)據(jù)類型(如本例中 string)躏精。
函數(shù)的修飾符
上面的函數(shù)實際上沒有改變 Solidity 里的狀態(tài)卫枝,即惩系,它沒有改變?nèi)魏沃祷蛘邔懭魏螙|西刻诊。
這種情況下我們可以把函數(shù)定義為 view, 意味著它只能讀取數(shù)據(jù)不能更改數(shù)據(jù):
function sayHello() public view returns (string) {
Solidity 還支持 pure 函數(shù), 表明這個函數(shù)甚至都不訪問應(yīng)用里的數(shù)據(jù)防楷,例如:
function _multiply(uint a, uint b) private pure returns (uint) {
return a * b;
}
這個函數(shù)甚至都不讀取應(yīng)用里的狀態(tài) — 它的返回值完全取決于它的輸入?yún)?shù),在這種情況下我們把函數(shù)定義為 pure.
注:可能很難記住何時把函數(shù)標(biāo)記為 pure/view则涯。 幸運的是复局, Solidity 編輯器會給出提示,提醒你使用這些修飾符是整。
實戰(zhàn)演習(xí)
創(chuàng)建一個 private 函數(shù)肖揣,命名為 _generateRandomDna民假。它只接收一個輸入變量 _str (類型 string), 返回一個 uint 類型的數(shù)值浮入。
此函數(shù)只讀取我們合約中的一些變量,所以標(biāo)記為view羊异。
函數(shù)內(nèi)部暫時留空事秀,以后我們再添加代碼。