https://cryptozombies.io/zh/lesson/4/chapter/1
截至目前,我们只接触到很少的 函数修饰符。
要记住所有的东西很难,所以我们来个概览:
-
我们有决定函数何时和被谁调用的可见性修饰符:
private
意味着它只能被合约内部调用;internal
就像 private 但是也能被继承的合约调用;external
只能从合约外部调用;最后public
可以在任何地方调用,不管是内部还是外部。 -
我们也有状态修饰符, 告诉我们函数如何和区块链交互:
view
告诉我们运行这个函数不会更改和保存任何数据;pure
告诉我们这个函数不但不会往区块链写数据,它甚至不从区块链读取数据。这两种在被从合约外部调用的时候都不花费任何gas(但是它们在被内部其他函数调用的时候将会耗费gas)。 -
然后我们有了自定义的 modifiers,例如在第三课学习的: onlyOwner 和 aboveLevel。 对于这些修饰符我们可以自定义其对函数的约束逻辑。
-
payable
修饰符:payable 方法是一种可以接收以太的特殊函数。
这些修饰符可以同时作用于一个函数定义上: