昨天有講到Solidity語言中的幾個基本資料型態,今天繼續來講解其他常見的語法吧!
函式的寫法為:
function (variable) {public|private|external|internal} {pure|view|payable} returns(type)
以下面這個程式為範例
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract SimpleStorage {
uint public num;
function set(uint _num) public {
num = _num;
}
function get() public view returns (uint) {
return num;
}
}
首先,我們先宣告一個名稱為 num 的 public 變數,資料型態是 uint
uint public num;
接著看到下面這段函式
function set(uint _num) public {
num = _num;
}
set(uint _num) :set 表示為這個函式的名稱,並且它接受一個名稱為 _num 的變數,其資料型態為 uintpublic :是一個修飾詞,表示這個函式是任何人都可以呼叫的num = _num :表示將 _num 這個變數的值,賦予給 num 這個變數,代表整個合約中必須有一個名稱叫做 num 的變數
簡而言之,這是一個名叫的 set 函式,它被允許供任何的使用者呼叫,用來設置或更新合約中一個名稱叫做 num 的變數之值,其資料型態為 uint
再來看到下面這段函式
function get() public view returns (uint) {
return num;
}
get() :表示為這個函式的名稱,也代表這個函式是將public :是一個修飾詞,表示這個函式是任何人都可以呼叫的view :是一個修飾詞,表示這個函式只供「查看」和「讀取」資料,不會對合約進行更改的動作return (uint) :為指定函式所返回的資料類型,這裡所返回的型別為 uintreturn num :表示這個函式返回一個名稱為 num 的變數,代表整個合約中必須有一個名稱叫做 num 的變數,並且它的資料型態會是 uint
綜合來說,這是一個名叫的 get 函式,它被允許供任何的使用者呼叫,用來查詢合約中一個名稱叫做 num 的變數之值,其資料型態為 uint
這樣就能夠從合約中讀取數值!
Solidity支援的運算子,常見的其中幾個:
+ , - , * , / , %
** ,a的b次方,記作 a**b
<< , >>
+= , -= , *= , /=
參考資料:https://solidity-by-example.org/state-variables/