日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

以太坊知识教程------智能合约(3)函数修饰符

發布時間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 以太坊知识教程------智能合约(3)函数修饰符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. solidity的五個關鍵字修飾符

操作定義
public用來修飾公開的函數 /變量,表明該函數/變量既可以在合約外部訪問,也可以在合約內部訪問 。
private私有函數和變量,只有當前合約內部才可以訪問 。
view/constant函數不會修改任何contract的數據,constant可以用于修飾常量和常函數。
pure函數不使用任何智能合約的變量
payable調用函數需要付錢,錢付給了智能合約的賬戶

2. 內部調用和外部調用

操作定義
external用于修飾函數,表示函數為一個外部函數,外部函數是合約接口的一部分,這意味著只能通過其他合約發送交易的方式調用外部函數
internal內部函數/變量,表示只能在當前合約或者繼承自當前合約的其他合約中訪問

a. 內部調用:調用同一合約中的函數。內部調用對應 EVM 指令集中的 JUMP 指令,所以是非常高效的,在此期間內存不會被回收。

b. 外部調用:調用其他合約實例的方法
會創建一個消息發送給被調用的合約,如 this.a()或者 foo.bar()這樣調用外部的合約函數,這里 foo 是一個合約的實例 。對其他合約函數的調用必須是外部調用,外部調用會將函數調用的所有參數都保存到內存中 。 注意,在構造函數中不能通過 this 調用函數,因為此時合約實例還未創建完成。

  • 函數的默認屬性為 public ,狀態變量的默認屬性為 internal ,并且不可設置為 external
  • public和private用于決定是否可以通過對象直接調用。
  • internal和lexternal用于決定是否其它的合約可以調用。

外部異常情況:①調用的合約不存在;②被調用的不是一個合約賬戶,即該賬戶不包括代碼;③被調用的函數拋出了異常;④調用過程中 Gas 耗盡

3. 傳參

對于普通的函數調用,參數的傳入順序必須與聲明時一致 。

4. 命名調用

Solidity 提供的一種特殊的函數調用方式

總結

以上是生活随笔為你收集整理的以太坊知识教程------智能合约(3)函数修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。