方法声明
function name(<parameter type>) {public|private|internal|external} [constant] [payable] [returns(<return types>)] {}
public:既可以被其他合约调用,也可以内部直接调用
external:可以被其他合约调用,但是自身合约内不能直接调用,需this.f()这样调用
internal:只能在合约和其子类合约中使用
private:只能在自己合约中使用,子类中也不能使用
constant:常量
payable:执行方法时可以接收发送的以太币
匿名方法
一个合约可以有一个匿名函数。
此函数不能有参数,也不能有返回值。
当我们企图去执行一个合约上没有和函数时,那么合约就会执行这个匿名函数。
此外,当合约在只收到以太币的时候,也会调用这个匿名函数,而且一般情况下只会消耗很少的gas。
所以当你接收以太币后,想要执行操作的话,可以把操作写在匿名函数中,这样成本非常便宜。
修改器
修改器可以用来改变方法的行为,比如在方法正式执行之前,检查方法是否满足条件,如果满足条件则执行方法,不满足则抛出异常等。
事件
即日志
合约继承
Solidity通过复制代码的方式来实现合约多重继承,当部署一个合约的时候,并不需要部署它的父类,因为父类的代码会被复制进被部署的那个合约里。