Что такое функция в программировании простыми словами

Вы учитесь программировать и пишете какой-то код, а потом сталкиваетесь с проблемой. Вы идете искать решение в Google, но вы не совсем уверены, что искать. “Проблема с JavaScript”? Это слишком расплывчато. “JavaScript в то время как цикл больше не зацикливается”? Много результатов поиска, но ни один из них не касается вашей конкретной проблемы. Вы смотрите на некоторые документы. В нем так много незнакомых слов и понятий, что с таким же успехом его можно было бы написать на другом языке.

В Angular контроллер определяется функцией конструктора JavaScript. Которая используется для увеличения угловой области.

Они просто придумывают слова и складывают их вместе в предложение? Это не поддается расшифровке. Вы начинаете гуглить” контроллер“,” функция конструктора “и” угловая область действияЭто просто приводит к большему количеству документации. Заполненной более незнакомыми терминами.

Вы решаете опубликовать вопрос на stackoverflow и получить такой ответ:

Это вопрос, связанный с минификацией. Инжектор Angular находит его во встроенных сервисах, таких как $scope, $http и т. Д. По имени, Поэтому, если ваш $scope или $http, вводимый в контроллер или службу или что-то еще. Будет уменьшен до чего-то вроде x или c или чего-то еще. То angular не сможет обнаружить. Что ему нужно создать экземпляр службы $http или предоставить $scope. Нарушая все.

Строка $scope и других зависимостей при создании контроллеров/директив и т. Д. Делает минификацию кода безопасной, потому что вы говорите. Какой бы первый параметр ни был передан в этот функция минимизирована до минимума. На самом деле она называется $scope. Так как минификаторы не калечат строки.

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

Вам знаком этот сценарий?

Почему Вам нужно изучать терминологию

Рассмотрим медицинскую аналогию:

Я использую электрошок, который является лекарством, если вы очень больны. Но может сделать вас немного больным. Если вы в порядке. Чисто! О нет. С ним все было в порядке. Теперь ему плохо от избытка электричества. — Этот взгляд Митчелла и Уэбба

Врачи не обсуждают диагнозы друг с другом в простых выражениях. Медицинские школы тоже не преподают в простых терминах. Медицина сложна, поэтому они общаются со сложным набором терминологии. Все понимают термин “сломанная нога”, но это слишком расплывчато для медицинского диагноза.

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

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

Я с удовольствием дам вам: Этот человек делится своими тремя быстрыми советами по пониманию программирования – разработчики программного обеспечения ненавидят его!

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

Список основных терминов программирования

Вот определения некоторых основных терминов программирования с примерами использования. Эти термины применимы к большинству языков программирования.

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

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

Если термин из этого списка используется в определении, он будет ссылаться на термин и выглядеть так. Там, где термин может использоваться как существительное, так и глагол (например, присваивание/назначение). Я включил только одно определение – оба варианта использования должны быть выведены из одного определения.

алгоритм
(существительное) пошаговая процедура достижения определенной цели. Может быть реализован с помощью кода.
Пример: Я использовал алгоритм быстрой сортировки для сортировки

массива по алфавиту.

аргумент
(существительное) значение, которое передается в функцию при ее вызове. Говорят, что аргументы “передаются” в функцию, а функции “принимают” аргументы. Также известный как “параметр”.
Пример: Эта функция принимает два аргумента.
массив
(существительное) тип значения, который содержит последовательность других значений.
Пример: Я поместил все наши имена в массив строк.
назначение
(существительное) акт помещения значения в переменную.
Пример: Я присвоил переменному число22age.
скобки
(существительное) символы часто используются для окружения текста.

Различные типы скобок:

  • Скобки/парены/круглые скобки: ( )
  • Фигурные скобки/фигурные скобки: { }
  • Угловые кронштейны: >
  • Квадратные скобки: [ ]

Скобка в начале называется “открывающей” или “левой” скобкой. Скобка в конце называется “закрывающей” или “правой” скобкой.
Пример: Ваш код не будет компилироваться, потому что вы забыли закрывающую скобку.

жук

Пример: Должна быть ошибка, потому что выходные данные неверны.
вызов
(глагол) для запуска кода в функции. Это также называется “запуск”, “выполнение” или “вызов” функции. Пример: Я вызвал функцию, и она вернулась .


rand 42

класс
(существительное) тип, который может быть определен программистом. Классы определяются для того, чтобы создавать объекты этого класса. Пример
: Я создал Personкласс, содержащий имя и возраст человека.
Комментарий
(существительное) произвольный текст, написанный вокруг кода . Но который никогда не выполняетсяи обычно игнорируется компьютером. Обычно оставлял заметки и документацию для людей, которые читали код позже. Также используется для остановки выполнения кода (см. Комментарий).
Пример: Я написал комментарии в своем коде, чтобы понять его позже.

прокомментируйте
(глагол) превратить код в комментарий, чтобы он не запускался.
Пример: я закомментировал эту строку кода, и он больше не падает.
компилятор
программа , которая преобразует код в исполняемый файли проверяет правильность синтаксиса. Иногда компиляторы преобразуют код в другой код.
Пример: Компилятор выдает мне ошибку. Так что где-то у меня должен быть неправильный синтаксис.
постоянный
(существительное) переменная, которая никогда не меняет своего значения.
Пример: PIконстанта имеет значение 3.14.
авария
пример: Я попытался разделить число на ноль, что привело к сбою программы.

структура данных
(существительное) значение, содержащее другие значения.
Пример: Массивы-это один из видов структуры данных.
отлаживать

Пример: Я потратил весь день на отладку сложной ошибки.
декларация
код , который объявляет. Что что – то существует-обычно переменная. Функция или класс . Объявление может не полностью определять то, что оно объявляет, например, константа может быть объявлена существующей. Фактически не определяя ее значения. Не все языки программирования допускают объявления.
Пример: Мой код не компилируется, потому что я написал объявление функции, но забыл написать саму функцию.

определение
(существительное) код, который полностью реализует что – то- обычно переменную, функцию или класс. Код, реализующий класс, называется “определением класса.” Код, реализующий функцию. Называется “определением функции.”
Пример: Функция делала не то, что я ожидал, поэтому я взглянул на ее определение.
двойной
(существительное) поплавок, который может представлять более широкий диапазон чисел. Чем обычный поплавок. Сокращение от “числа с плавающей запятой двойной точностиПример
: Число было настолько крошечным, что мне пришлось использовать двойник вместо поплавка

выполнять

Пример: Я не могу выполнить свою программу, потому что она не компилируется .
выполнимый

Пример: Дайте мне исполняемый файл, чтобы я мог опробовать вашу программу.
плыть
(существительное) тип значения, представляющего числа с дробными частями. Сокращенно от “числа с плавающей точкой”.
Пример: Значение 3.14является плавающим.
функция
(существительное) фрагмент кода, который не выполняется, пока он не вызван. Функции принимают ноль или более аргументов.
Пример: Я написал функцию, которая принимает массив чисел в качестве аргумента и возвращает среднее значение.

вызов функции
(существительное) код для вызова функции. Вызовы функций определяют, какую функцию вызывать, и все аргументы, которые требуются для функции. Результатом вызова функции является возвращаемое значение. Не все функции имеют возвращаемое значение.
Пример: Вызов функции add(1,2,3)возвращает значение 6.
осуществлять
(глагол) написать весь код для завершения чего – либо-обычно функции или класса.
Пример: Я закончил реализацию этих функций.
пример
(существительное) Синоним object.
Example: Я создал экземпляр Person класса.
переменная экземпляра
(существительное) переменная, которая присоединена к объекту. Также известный как “переменная-член” или просто “член”.

Пример: На tomобъекте я присвоил значение "Tom Dalling"переменной nameэкземпляра.

конкретизировать
(глагол) для создания объекта из класса.
Пример: Я создал экземпляр объекта Personкласса.
целое число
(существительное) тип значения, представляющего целые числа. Дробные числа см. в разделе float.
Example: 42is a integer value.
переводчик
(существительное) программа, которая запускает код. Для языков, которые не компилируются, исходный код запускается непосредственно интерпретатором.

Скомпилированные языки программирования обычно не имеют интерпретатора.
: Я установил интерпретатор Ruby, чтобы я мог запустить свой код Ruby.

взывать
(глагол) Синоним вызова.
Пример: Я вызвал функцию с неправильными аргументами, и она разбилась.
итерация
Пример: Я перебрал все значения в массиве .
петля
(существительное) фрагмент кода, который повторяется сам по себе. Обычно используется для запуска фрагментного кода для каждого значения в массиве. Также известный как “итерация”.
Пример: Код повторяется до тех пор. Пока пользователь не наберет “quit.”
функция-член
Пример: Этот класс имеет три функции-члена.
переменная-член
Пример: Этот класс имеет две переменные-члены.
метод
(существительное) функция, которая присоединена к объекту. Методы принадлежат классу и определяются в нем . Также известный как “функция-член.”
Пример: lengthМетод возвращает количество символов в строковом объекте.
вложенный
Например. Вложенный массив-это массив. Который находится внутри другого массива. А вложенный класс-это класс. Определенный внутри определения другого класса.
: Я использовал вложенный цикл для перебора сетки – внешний цикл для xкоординаты и внутренний цикл для yкоординаты.
объект
Например . Если вы хотите представить свою семью в коде. То вы можете вызвать класс FamilyMemberи создать несколько объектов из этого класса – по одному объекту для каждого члена вашей семьи. Объекты обычно содержат другие значения внутри переменных экземпляраи имеют методы , прикрепленные к ним. Например, каждый FamilyMemberобъект может иметь переменную nameэкземпляра. Объекты объединяют понятие переменных и функций в единое значение. Также известный как “экземпляр”.
Пример: я заставляю врага двигаться. Изменяя переменную positionэкземпляра enemyобъекта.
объектно-ориентированный

Пример: Ruby-это объектно-ориентированный язык программирования, поскольку все значения являются объектами в Ruby.
параметр
(существительное) Синоним аргумента.
Пример: Эта функция принимает два параметра.
скобка
(существительное) Пример
: Лисп-подобные языки программирования используют много скобок в своем синтаксисе .
процедура
Пример: Эта процедура принимает два аргумента .
программа
(существительное) полная программа, готовая к запуску. Обычно исполняемыйфайл .
Пример: Я написал программу, которая отслеживает мой список задач.
Читать
(глагол) для получения значений входных данных из внешнего источника – обычно из файла. Может относиться к получению данных по сети, такой как Интернет. Противоположность writing.
Example: Я читаю содержимое файла в строку.
Возврат
(глагол) немедленно остановить выполнение вызываемойфункции, возможно. Предоставив возвращаемое значение. Функция автоматически возвращается после выполнения всего кода. Однако код в определении функции может заставить функцию вернуться в любой момент.
Пример: Если массив пуст, функция возвращается рано. Не выполнив остальную часть своего кода.
возвращаемое значение
(существительное) значение, которое является результатом завершенного вызова функции.
Пример: Возвращаемое значение randфункции является случайным плавающим значением между 0.0и 1.0.
бежать
(глагол) для выполнения инструкций. Записанных в коде или исполняемомфайле . Код-это набор инструкций, а “запущенный” код-это когда компьютер фактически выполняет эти инструкции.
Пример: Я написал новую функцию и запустил код, чтобы проверить. Работает ли она.
строка
(существительное) тип значения, представляющего текст. Слово “строка” происходит от словосочетания “строка символов”. Например, Строка"cat"-это строка (она же последовательность) символов
Пример: Я представил свое имя в коде в виде строки.
синтаксис
грамматические правила языка программирования. Каждый язык программирования имеет свой синтаксис. Синтаксис определяет, правильно или неправильно написан код, и применяется компилятором или интерпретатором. Код не будет компилироваться или запускаться, если синтаксис не будет правильным.
: Я забыл написать скобки, поэтому компилятор выдал мне синтаксическую ошибку.
Тип
(существительное) вид или категория ценности. Каждое значение имеет свой тип.

Простые типы, такие как целые числа, обычно предоставляются языком программирования. Программист может определить более сложные типы с помощью классов. Тип объекта определяет, какие методы и переменные экземпляра прикреплены к этому объекту.
Пример: Я получил сбой, потому что переменная содержала неправильный тип значения – я думал, что это будет целое число. Но на самом деле это была строка.

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

  • отправка и получение значений через Интернет
  • сохранение значений в файлах
  • преобразование значений в различные значения
  • и т.д.

Пример: Моя программа запрашивает у пользователя год их рождения. А затем использует это значение для вычисления их возраста.

переменная
(существительное) именованный контейнер для одного значения. Переменные сами по себе не являются значениями, они являются просто контейнерами для значений. Ввод значения в переменную называется присваиванием. Переменные названы в честь того. Что их значение может изменяться – переменным может быть присвоено другое значение в любое время.
Пример: Я присвоил переменной строковое значение"Tom"name.
писать
(глагол) для отправки значений выходных данных во внешнее место назначения – обычно в файл. Может относиться к отправке данных по сети, такой как Интернет. Противоположность reading.
Example: Программа записывает все свои данные в файл, прежде чем он выходит. Так что он может прочитать данные обратно в следующий раз. Когда он запускается.

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

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

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

  • аргумент
  • назначить
  • вызов
  • функция
  • вызов функции
  • Возврат
  • возвращаемое значение
  • ценность

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

Термин “функция” остается немного двусмысленным до тех пор. Пока вам не потребуется реализовать его самостоятельно. В этот момент книга вновь обращается к восьми вышеприведенным терминам. К этому моменту вы уже написали несколько программ, поэтому термины должны быть более ясными. И вы должны быть в состоянии усвоить более подробные объяснения.

Обратите внимание, что в этой статье больше определений, чем в книге. Это нарочно. Книга нацелена на то, чтобы в первую очередь углубиться в самые фундаментальные термины. Другие термины объясняются, но им не уделяется столько внимания.

Если это звучит хорошо для вас, дайте книге попробовать!