Solidity语言学习笔记(一):this关键字与构造函数
  iwbGD3gmtxyT 2023年11月02日 68 0


(1)同其他高级语言类似,Solidity语言中也有this关键字。但是,在构造函数中调用this会出现问题,原因是因为在构造函数中,this的对象尚未生成所致。

Solidity语言学习笔记(一):this关键字与构造函数_this关键字

注意,上图中,this关键字下添加了波浪线,指出:

Solidity语言学习笔记(一):this关键字与构造函数_Solidity_02

(2)自0.4.22颁布起,废除function+合约名称来定义构造函数,而采用“constructor(...) { ... }”来声明构造函数。

以前版本中是这样定义构造函数的:

contract TestCon {
  function TestCon public {
    //......
  }
}

自0.4.22颁布起,新的构造函数定义使用constructor关键字,如下:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract MyContract {
  uint public myVariable;

  constructor(uint _myVariable) {
    myVariable = _myVariable;
  }
}

同时还应当注意:[0]当该合约被部署到以太坊网络时,构造函数将自动执行;[1]合约只能有一个构造函数;[2]必须位于合约中的第一个函数位置;[3]在Solidity 0.8.0及以上版本中,必须显式声明构造函数,并在函数签名前面加上 constructor 关键字。[4]构造函数的定义必须始终提供实现函数体。而且请注意,指定internal或public可见性已经不支持使用


参考

https://blog.51cto.com/u_15067225/2901016

https://blog.csdn.net/zyq55917/article/details/127490001



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
iwbGD3gmtxyT