1. solidity的五个关键字修饰符
2. 内部调用和外部调用
a. 内部调用:调用同一合约中的函数。内部调用对应 EVM 指令集中的 JUMP 指令,所以是非常高效的,在此期间内存不会被回收。
b. 外部调用:调用其他合约实例的方法
会创建一个消息发送给被调用的合约,如 this.a()或者 foo.bar()这样调用外部的合约函数,这里 foo 是一个合约的实例 。对其他合约函数的调用必须是外部调用,外部调用会将函数调用的所有参数都保存到内存中 。 注意,在构造函数中不能通过 this 调用函数,因为此时合约实例还未创建完成。
函数的默认属性为 public ,状态变量的默认属性为 internal ,并且不可设置为 externalpublic和private用于决定是否可以通过对象直接调用。internal和lexternal用于决定是否其它的合约可以调用。
外部异常情况:①调用的合约不存在;②被调用的不是一个合约账户,即该账户不包括代码;③被调用的函数抛出了异常;④调用过程中 Gas 耗尽
3. 传参
对于普通的函数调用,参数的传入顺序必须与声明时一致 。
4. 命名调用
Solidity 提供的一种特殊的函数调用方式