Баннер мобильный (3) Пройти тест

Аргумент

Глоссарий

7 августа 2024

Поделиться

Скопировано

Содержание

    Аргумент в программировании — значение, которое передается в функцию, чтобы та использовала его в вычислениях. Например, если функция складывает числа a и b, то конкретные значения a и b будут аргументами.

    Что такое аргумент в программировании

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

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

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

    Для чего нужны аргументы функции

    Переиспользование функции. Если в функцию нельзя подставлять произвольные значения, она становится менее универсальной. Ее нельзя использовать повторно, потому что единственные возможные значения, с которыми можно работать, — те, которые функция сгенерировала сама. То есть, например, функция сложения всегда будет складывать числа 3 и 5, а передать в нее что-нибудь новое будет нельзя. Аргументы решают эту проблему. Они передают в функцию значения, и та может работать с ними — например, складывать произвольные числа, которые отправит в нее разработчик при запуске.

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

    Использование функций с аргументами делает код более стройным и понятным. Сразу видно, откуда взялось то или иное значение. Если переменные называются понятными именами, их применение в качестве аргументов улучшает читаемость. А читаемость важна в коммерческой разработке, где над одним кодом может в разные периоды работать несколько человек.

    Возможность усложнять выражения. Бывают ситуации, когда внутри функции инициируется и запускается другая функция, или в ней реализуется сложное выражение. Аргументы пригодятся и здесь. Например, можно передать результат какого-то выражения как аргумент или отправить аргумент «родительской» функции во вложенную. Такое вполне возможно и часто используется в разработке, в итоге даже сложные вещи могут реализоваться меньшим количеством кода.

    Отличия между аргументами и параметрами

    Есть еще одно сходное слово — параметр функции. Их легко перепутать с аргументами, и в некоторых языках понятия действительно взаимозаменяемы. Но общее правило такое:

    • параметр — переменная, которая передается в функцию при ее описании. Она абстрактная и пока ничего не значит, просто говорит функции, каким должен быть будущий аргумент;
    • аргумент — непосредственное значение, которое передается в функцию при вызове. Оно подставляется вместо параметра и должно соответствовать правилам, по которым описан параметр (например, принадлежать к определенному типу).

    Иными словами, аргумент — фактическая реализация абстрактного параметра.

    Но многое зависит от правил конкретного языка — мы упоминали об этом выше. Например, в Python и то, и другое принято называть аргументами. В некоторых языках оба понятия называют параметрами — формальными и фактическими.

    Пример. Мы описываем функцию func(a, b), где a и b — абстрактные значения, параметры. А потом вызываем ее как func(name, surname), где name и surname — аргументы. С ними будут производиться действия, описанные в функции, они подставятся вместо a и b в ее коде.

    Как передаются аргументы

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

    По значению. В этом случае аргумент становится как бы копией переменной, которую отправили в функцию при ее вызове. Например, в качестве аргумента в функцию отправили переменную something, которая есть во внешнем коде. Функция создаст копию something и внутри себя будет работать с ней. А изначальная переменная something во внешнем коде не изменится. В таких случаях говорят, что в функцию передали значение.

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

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

    Что можно делать с аргументами

    Использовать в коде. Когда мы пишем функцию, мы используем параметры и с их помощью описываем, что функция будет делать с аргументами. При вызове аргументы подставятся вместо параметров, и с ними выполнятся все действия, которые мы описывали: сложение, вычитание, разные преобразования и так далее.

    Подставлять в выражения. Если внутри функции используется какое-то сложное выражение, в него можно подставить параметр — при вызове на его месте, соответственно, будет аргумент. Так и достигается универсальность функций.

    Передавать во вложенные функции. Бывает так, что функция внутри себя вызывает другую функцию. А иногда и сама себя — называется рекурсией. В таком случае функция спокойно может отправить во внутреннюю функцию аргументы, которые получила сама. Это нормально, и так многие делают. Более того: можно отправить не аргумент в чистом виде, а результат выражения с ним, например, не x, а x — 1.

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

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

    При использовании встроенных функций тоже пользуемся аргументами. Самая известная первая программа — print(‘Hello, world’) — использует встроенную функцию print (в разных языках может называться по-разному). А ‘Hello, world’ — аргумент. На его место можно подставить любой другой текст — и функция выведет его.

    Конечно, со временем использование аргументов становится сложнее, изучаются новые возможности и особенности. Но основы закладываются еще в самом начале.

    Поделиться

    Скопировано

    0 комментариев

    Комментарии