在Solidity中,构造函数是否可以与合同具有相同的名称?

时间:2018-05-21 20:18:59

标签: function constructor

根据这个article,构造函数 - 或初始化 - 函数与契约具有相同的名称。但是,当我有一个具有相同名称的函数时,remix编译器会返回错误,并说"将构造函数定义为与弃用契约同名的函数。使用"构造函数(...){...}"代替"

所以,我的问题是,在这种情况下使用相同的名称应该简单地避免吗? (也许这是一个过时的练习?)

1 个答案:

答案 0 :(得分:0)

Solidity v0.4.23起,现在使用constructor关键字指定构造函数:

    constructor () {}

只需与旧方法进行比较,比如说我们有一个名为Employee的智能合约,过去,您可以使用其构造函数来指定合约,如下所示:

    contract Employee {
      // constructor
      function Employee() public {
        // ...
      }
    }

但是现在指定员工智能合约的可接受方法是:

    contract Employee {
      // constructor
      constructor() public {
        // ...
      }
    }

现在不建议使用合同名称作为其构造函数。