修饰符有很多

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是一个以太网内建单元