В Solidity, функция конструктора может иметь то же имя, что и контракт? - PullRequest
0 голосов
/ 21 мая 2018

Согласно этой статье , функция конструктора или инициализации имеет то же имя, что и контракт.Однако компилятор ремиксов возвращает ошибку, когда у меня есть функция с тем же именем, говоря «определение конструкторов как функций с тем же именем, что и контракт, устарело. Вместо этого используйте« constructor (...) {...} »."

Итак, мой вопрос: использовать в этой ситуации одно и то же имя, чего следует просто избегать?(Возможно, это устаревшая практика?)

1 Ответ

0 голосов
/ 23 июля 2018

Начиная с Solidity v0.4.23, конструкторы теперь указываются с использованием ключевого слова constructor:

    constructor () {}

Просто для сравнения со старыми способами, скажем, у нас был умный контракт с именем Employee, в прошломвы бы указали контракт с его конструктором следующим образом:

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

Но приемлемый способ указать смарт-контракт сотрудника теперь:

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

Использование имени контрактатак как его конструктор устарел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...