修饰符有很多
1.public和private:public表示公有都可以使用,private表示只能被这个合约使用
2.internal和external: internal跟private比较类似,但是internal修饰的可以被继承的合约使用
3.external和public类似,但是不能被该合约使用
4.pure和view:view表示这个函数不会修改和保存任何东西,pure表示只跟输出只跟输入有关,不但不在区块链写数据而且不会用里面的数据,只会用输入的数据
5.还有修饰符modify:
函数修饰符:函数修饰符跟函数是类似的,不用是用来修饰已有的函数,在其他语句执行前,为它先检验条件。关键字modifier(修饰符)
调用函数修饰符常常用在函数的后面跟public和private等一个位置用来判断是否执行该函数
函数修饰符通常使用下划线结尾
如:modifier olderThan(uint _age,uint _userId){
require(age[_userID]>= _age);
_; //以_;结尾表示函数正常返回继续执行之前的功能
}
6.payable修饰符(可支付):
payable函数是可以接受以太币的特殊函数
在以太坊中可以在调用函数的时候付钱给另一个合约如:
contract OnlineStore { function buySomething() external payable {
// 检查以确定0.001以太发送出去来运行函数:
require(msg.value == 0.001 ether);
// 如果为真,一些用来向函数调用者发送数字内容的逻辑
transferThing(msg.sender);
}
}
msg.value是用来查看向合约发送了多少以太币的办法,ether是一个以太网内建单元