iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

不能不知的區塊鏈:入門指南系列 第 29

智慧合約實作 (四)

  • 分享至 

  • xImage
  •  

昨天有講到Solidity語言中的幾個基本資料型態,今天繼續來講解其他常見的語法吧!

函式(function)

函式的寫法為:

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;
    }
}

首先,我們先宣告一個名稱為 numpublic 變數,資料型態是 uint

uint public num;

接著看到下面這段函式

function set(uint _num) public {
        num = _num;
    }

set(uint _num)set 表示為這個函式的名稱,並且它接受一個名稱為 _num 的變數,其資料型態為 uint
public :是一個修飾詞,表示這個函式是任何人都可以呼叫的
num = _num :表示將 _num 這個變數的值,賦予給 num 這個變數,代表整個合約中必須有一個名稱叫做 num 的變數

簡而言之,這是一個名叫的 set 函式,它被允許供任何的使用者呼叫,用來設置或更新合約中一個名稱叫做 num 的變數之值,其資料型態為 uint

再來看到下面這段函式

function get() public view returns (uint) {
        return num;
    }

get() :表示為這個函式的名稱,也代表這個函式是將
public :是一個修飾詞,表示這個函式是任何人都可以呼叫的
view :是一個修飾詞,表示這個函式只供「查看」和「讀取」資料,不會對合約進行更改的動作
return (uint) :為指定函式所返回的資料類型,這裡所返回的型別為 uint
return num :表示這個函式返回一個名稱為 num 的變數,代表整個合約中必須有一個名稱叫做 num 的變數,並且它的資料型態會是 uint

綜合來說,這是一個名叫的 get 函式,它被允許供任何的使用者呼叫,用來查詢合約中一個名稱叫做 num 的變數之值,其資料型態為 uint

這樣就能夠從合約中讀取數值!

運算子

Solidity支援的運算子,常見的其中幾個:

  • 加、減、乘、除、取餘數 : + , - , * , / , %
  • 次方: ** ,a的b次方,記作 a**b
  • 位元操作:<< , >>
  • 複合指定運算子: += , -= , *= , /=

參考資料:https://solidity-by-example.org/state-variables/


上一篇
智慧合約實作 (三)
下一篇
智慧合約實作 (五)
系列文
不能不知的區塊鏈:入門指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言