Функция — это группа повторно используемого кода, которую можно вызывать в любом месте вашей программы. Это помогает программистам разбивать свой код на модули и повторно использовать его несколько раз в разных контрактах или между ними.
Определение функции
Чтобы определить функцию в 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