北京外贸营销网站建设费用,沉默是金,自己建网站怎么赚钱,360免费wifi为什么连接不上一、函数修改器 modifier
在 solidity 中有一个函数修改器可作为前置、中置或者后置方法#xff0c;有点像 ASP.NET 中的母版页#xff08;最起码差不多十年不碰了#xff0c;不懂还有没有这个概念#xff09;#xff0c;又有点像 ThinkPHP 中的前置方法#xff0c;可以…一、函数修改器 modifier
在 solidity 中有一个函数修改器可作为前置、中置或者后置方法有点像 ASP.NET 中的母版页最起码差不多十年不碰了不懂还有没有这个概念又有点像 ThinkPHP 中的前置方法可以在指定某个函数调用前、中执行该函数下面是一个示例
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.6;
contract ModifierTest{modifier checkAge(uint val){require(val10,Age 10);_;}modifier checkHeight(uint val){require(val260,Height 260);_;}function osVal(uint age,uint height) external pure checkAge(age) checkHeight(height){age1;}
}以上代码中使用 modifier 创建了函数修改器modifier 之后是对应的函数修改器名称可以接收参数或者不接收参数其中的 “_;” 表示使用这个修改器的函数代码位置例如
modifier checkHeight(uint val){require(val260,Height 260);_;}在被 osVal 方法调用后osVal 方法中代码的位置就等于在“_;”位置进行填充。在 osVal 中使用这些修改器只需要再其后说明即可并且可以传入对应的参数调用后效果如下 “三明治”用法
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.6;
contract ModifierTest{uint public age0;modifier sandwich(){age1;_;age1;}function osVal() external sandwich(){age1;}
}三明治用法就是用于中间