«внутреннее» ключевое слово в определении функции в Solidity

Используется ли ключевое слово internal в определении функции, например:

function doSomeThing(uint _param) internal {...}

работает аналогично назначению метода как частного на других языках и, таким образом, делает функцию только вызываемой из договора?

19 голосов | спросил Terek Judi 25 Jpm1000000pmMon, 25 Jan 2016 18:46:22 +030016 2016, 18:46:22

2 ответа


13

Модификатор internal может быть лучше по сравнению с protected в объектно-ориентированных языках программирования. Внутренние функции контракта C видны коду, запущенному по текущему адресу (т. Е. Текущему экземпляру контракта), но также к контрактам, производным от C.

Обратите внимание, что из-за архитектуры EVM видимость - это то, что можно строго соблюдать на уровне машины: нет способа вызвать функцию по другому адресу, если она явно недоступна (т. е. вы не можете просто «отличить») договор на другой тип). Также невозможно вызвать внутренние или частные функции одного и того же типа контракта по другому адресу.

ответил chriseth 25 Jpm1000000pmMon, 25 Jan 2016 19:44:21 +030016 2016, 19:44:21
14

Да. Внутренний internal

----+:=2=:+---- функции не доступны в производных контрактах.

В документах :

  

внутренний:

     

Эти функции и переменные состояния могут быть доступны только внутренне (т. е. из текущего контракта или контрактов, вытекающих из него), без использования этого.

     

закрытый:

     

Частные функции и переменные состояния видны только для контракта, в котором они определены, а не в производных контрактах.

ответил Tjaden Hess 25 Jpm1000000pmMon, 25 Jan 2016 19:48:27 +030016 2016, 19:48:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132