IERC20 和只是地址之间的区别

Difference between IERC20 and just address

其他合约有两种声明ERC20的方式:

  1. IERC20 public token,然后像 token.transfer;
  2. 一样连接到它
  3. address public token,然后像 IERC20(token).transfer.
  4. 一样连接到它

这两种申报方式有什么区别吗?如果是这样,更喜欢使用什么?

唯一的区别是在编译期间,如果您尝试在需要另一种类型的地方使用一种类型,编译器会报错。

在运行时方面,它们都是(160位)以太坊地址。

在您的示例中,使用类型 IERC20 更有意义,因为这是变量的预期类型 token