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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

solidity modifier函数修改器 智能合约开发知识浅学(三)

發布時間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solidity modifier函数修改器 智能合约开发知识浅学(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境說明: Ide:在線remix Solidity IDE
語言:solidity solidity
版本號:0.4.20
Tip:如果一點都不懂的建議從頭開始看
運行結果截圖我不贅述,所有合約代碼均通過個人檢測。請按照標準進行操作,如出問題檢測是否網絡連得上外網,且操作按照第一節內容類似操作;由于版本更新,可能會出現不同,但該教材代碼均適用于在0.4.20 版本使用

modifier 為函數的修改器,可以為一個函數控制其中邏輯。修改器為屬性,可以繼承和重寫。
函數修改器可以很方便的控制器邏輯,讓項目結構清晰合理。其實如果淺顯的看,和tp框架的前置操作有異曲同工之妙。
代碼如下:

pragma solidity ^0.4.20; contract Test{uint256 a;modifier modifierfunc(uint256 value){require(value >= 10);_;}function set(uint256 x)public modifierfunc(x){a=x;}function get() public constant returns(uint256){return a;} }

首先聲明solidity版本號
定義合約函數,名為Test,這里和上一節都一樣、
接下來聲明一個uint256變量a

uint256 a;

接下來定義一個函數修改器:

modifier modifierfunc(uint256 value){
require(value >= 10);
_;
}

其中關鍵字為 modifier
函數修改器名為 modifierfunc
這個函數修改器接收一個 uint256 類型的參數 value
其中require為檢查輸入是否滿足要求
require(value >= 10); 其中value是否大于等于10,如果沒有則拋出錯誤
接下來是一個占位符下劃線,表示接下來要執行的代碼,意思說還有執行完后如果沒有錯誤將會執行下面的代碼。

set函數:

function set(uint256 x)public modifierfunc(x){
a=x;
}

其中是一個名為set 的方法,接收一個uint256類型的參數x
public修飾符修飾整個函數
并且用函數修改器修飾這個函數,這個函數修改器是modifierfunc
并且接收參數為之前set函數接收的參數x
函數內容為 a=x
把鍵入的x的值給予合約屬性a變量

get函數:

function get() public constant returns(uint256){
return a;
}

在這里get函數為public類型
constant修飾這個函數表示未進行修改變量
返回值為uint256,用returns修飾返回值類型
最后返回:return a;

最終部署運行:不會的看第一篇
記得一定要解鎖錢包,不會的看第一篇

如果這一段不會請看第一篇

部署后調用函數:

展開合約后,點擊set輸入11,點擊get調用合約函數將會返回11
假設輸入小于10的數,則會報錯

總結

以上是生活随笔為你收集整理的solidity modifier函数修改器 智能合约开发知识浅学(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

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