智能合约构造函数中可以使用 this 吗?

智能合约的地址什么时候有效?在构造函数中可以使用 this 吗?

请先 登录 后评论

最佳答案 2019-12-10 15:46

通常的直觉是智能合约应该在构造完之后(即构造函数 constructor 执行完之后),其实并不是,在 constructor 中是可以使用 this 来表示当前合约的地址,因为在发起交易的时候,就已经可以确定合约的地址,参考合约地址的计算

可以使用下面的代码测试一下:

pragma solidity ^0.5.0;

contract Test {
  address public thisAddress;
  event LogAddr(address);

  constructor()  {
    thisAddress = address(this);
    emit LogAddr(address(this));
  }
}
请先 登录 后评论

其它 0 个回答