iT邦幫忙

2021 iThome 鐵人賽

DAY 24
1
影片教學

連續30天,每天5分鐘,一起學習blockchain!系列 第 24

[Day24]solidity合約內容講解2


hi~我們今天要討論有關solidity合約內容,今天的內容會延續昨天的!所以如果還沒看昨天的建議先去看昨天的影片呦!(傳送門)

資料儲存位置

(畢竟你每搬一次東西,就會需要礦工,就會花錢:(

  1. Calldata:read only
  2. Memory:會隨著你的function生而生,死而死
  3. storage:會隨著你的合約生而生,死而死

合約宣告

contract helloworld{
//這就是宣告一個helloworld的合約,然後這裡可以輸入一些可愛的合約內容
}

版本宣告

pragma solidity >=0.7.0 <0.9.0;
//意思是0.7.0~0.9.0之間的任何版本都可以執行這項合約。

授權宣告

// SPDX-License-Identifier: GPL-3.0
//如果不想要公開的話,可以把GPL-3.0改成UNLICENSED

方法function

function functionname(參數,參數2) 可見度 可變性 returns(回傳的資料){
}

//回傳資料可有可無,取決於你要或不要回傳
//可見度與可變性一定要宣告
//參數以及回傳值都可以是多個,要用逗號隔開
//functionname不可以用保留字
function store(uint256 num) public {
        number = num;
}

可見度

  • Private:不想被外面看到,也只能被自己呼叫
  • Public:公開的,可以被自己或外部的function呼叫
  • External:可以被外部合約直接呼叫,但不能被內部合約直接呼叫,假如function叫做x,不能直接呼叫x,要呼叫this.x()

state的可變性

  • Pure:不會讀也不會寫state
  • View:只讀不寫state
  • Default:可讀也可寫state
小練習:宣告一個公開、可讀不可寫、名為abc的function,參數a為int型態,要回傳int型態的b。

那今天的介紹就到這邊拉~
真的是沒有很專業的介紹,比較像是跟大家分享我學到甚麼,我還有很多要學習的地方:(
如果喜歡的話明天記得繼續回來看下一篇!影片記得按讚訂閱開小鈴鐺謝謝大家!
/images/emoticon/emoticon29.gif


上一篇
[Day23]solidity合約內容講解part.1
下一篇
[Day25]solidity合約內容講解3
系列文
連續30天,每天5分鐘,一起學習blockchain!30

1 則留言

0
riskers
iT邦新手 5 級 ‧ 2021-12-30 17:42:19
function abc (int memory a) public view returns (int) {

}

我要留言

立即登入留言