iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
影片教學

30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛系列 第 5

Solidity 入門走到飛🚀-【Day5】變量數據存儲 & 作用域 - storage、memory、calldata

  • 分享至 

  • xImage
  •  

影片教學

Yes

主要內容

Solidity 有三種數據存儲位置,這些不同的存儲位置會導致不同的 gas 成本。

1.storage

合約的狀態變數默認存儲在 storage 中,相當於區塊鏈上的永久存儲,因此 gas 成本較高。

2.memory

函數內的參數和臨時變數通常存儲在 memory 中,這是臨時的內存存儲,gas 成本較低。

3.calldata

類似於 memory,也是存儲在內存中的臨時數據,但與 memory 的不同之處在於 calldata 中的數據是不可修改的,通常用於函數的參數傳遞。

Solidity 有三種變數作用域

1.狀態變數

存儲在鏈上,可被合約內所有函數訪問,gas 消耗高。

2.局部變數

僅在函數執行期間有效,函數退出後失效,存儲在內存中,不上鏈,gas 消耗低。

3.全局變數

Solidity 預定義的全局變數,可在函數內直接使用,包括 msg.sender、block.number 等等。

相關連結

WTF Solidity DataStorage


上一篇
Solidity 入門走到飛🚀-【Day4】函數輸出 - return
下一篇
Solidity 入門走到飛🚀-【Day6】變量類型 - 引用
系列文
30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言