Функция — это группа повторно используемого кода, которую можно вызывать в любом месте вашей программы. Это помогает программистам разбивать свой код на модули и повторно использовать его несколько раз в разных контрактах или между ними.

Определение функции

Чтобы определить функцию в Solidity, нам нужно указать имя функции, уровень видимости и вернуть type. а также любые входные параметры, которые функция примет. Функция также может иметь список параметров, содержащий имя и тип данных параметра.

function functionName(type1 param1, type2 param2, ...) visibility returnType {
  // function body
}

Новичок в трейдинге? Попробуйте криптотрейдинговые боты или копи-трейдинг на лучших криптобиржах

Например, вот функция с именем calculateSum, которая принимает два параметра uint (целое число без знака) и возвращает сумму этих двух значений в виде uint:

function calculateSum(uint a, uint b) public returns (uint) {
  return a + b;
}

Видимость функции

Вы можете указать уровень видимости функции, чтобы контролировать, где и как к ней можно получить доступ. Существует три уровня видимости:

  • Public функции — это уровень видимости по умолчанию в Solidity. Их можно вызывать откуда угодно. Они часто используются для определения интерфейса контракта.
  • Private, с другой стороны, можно вызывать только из контракта, в котором они определены. Они полезны для инкапсуляции деталей внутренней реализации.
  • Internalфункции имеют уровень видимости, аналогичный приватному, но их также можно вызывать из производных контрактов.
function publicFunction() public {
  // function body
}

function privateFunction() private {
  // function body
}

function internalFunction() internal {
  // function body
}

Вызов функции

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

functionName(param1, param2, ...);

Например, рассмотрим контракт с общедоступной функцией calculateSum, которая принимает два параметра uint (целое число без знака) и возвращает сумму этих двух значений в виде uint. Чтобы вызвать эту функцию из того же контракта, вы можете просто использовать следующий синтаксис:

uint result = calculateSum(3, 5);

Чтобы вызвать публичную функцию из другого контракта, вам нужно сначала создать экземпляр этого контракта, а затем вызвать функцию для этого экземпляра.

OtherContract contractInstance = new OtherContract();
uint result = contractInstance.calculateSum(3, 5);

Заявление о возврате

В Solidity вы можете использовать необязательное ключевое слово return, чтобы указать значение или значения, которые должны быть возвращены функцией. Этот оператор должен быть последним оператором в функции.

Вот пример функции, которая возвращает одно значение:

function getUserName() public returns (string) {
  return "Alice";
}

Вы также можете вернуть несколько значений из функции с помощью кортежа. Кортеж — это тип данных, который позволяет группировать несколько значений разных типов в одну сущность.

function getUserData() public returns (string name, uint age) {
  name = "Alice";
  age = 25;
  return (name, age);
}

Заключение

Я надеюсь, что эта статья дала вам хорошую основу для использования функций в Solidity. Если у вас есть какие-либо вопросы или вы хотите узнать больше, пожалуйста, не стесняйтесь спрашивать!

Я делаю это, потому что мне это нравится, но если вы хотите, чтобы я угостил меня чашкой кофе, я не откажусь :O )Спасибо ^^

пожертвование:

Эфир: 0x7C5081f6eb1Fbc7b99BA07522C0b51E250b33163

Биткойн: bc1qtwlga9xpksqlryyr00xxwfwmmges0wryptc9dk

Соединять

Линкдин

Также читайте

  1. Ваше первое приложение Solidity: пошаговое руководство
  2. Основы Solidity: руководство для начинающих по типам данных
  3. Web3.js: руководство для начинающих по взаимодействию с блокчейном Ethereum
  4. Официальная документация по web3.js