Функція і оператор - що це таке в програмуванні

Спочатку уточнимо, що таке оператор, а що таке функція (мова йде про високоуровневивх мовах програмування типу Pascal або, скажімо, PHP)

чого загального

І відразу зазначимо що і оператор і функція виконують якусь операцію (дія) над даними. в тому в сенсі філософському, або, скажімо, математичному, вони нічим не відрізняються. просто "оформляється" цю дію кілька різними способами, про що ми і поговоримо.

Що таке оператор

Оператор - знак будь-якої операції, операції ж зазвичай виробляються над об'єктами, наприклад, у багатьох мовах програмування складання двох литералов можна зробити використовуючи оператор суми, відомий нам як "плюс":

Що таке "функція"

Процедура / функція / метод класу - все це суті своїй підпрограми.

Підпрограма - це програма, яку основна програма викликає для здійснення будь-яких дій.

Якщо функція нестандартна і ви реалізуєте її самі (наприклад в Паскалі це робиться так), то в тілі своєї функції ви можете викликати інші функції і використовувати оператори, тобто по суті, функція - це просто згрупований код. який, як очікується, вирішить якусь конкретну задачу.

Тепер поговоримо про те, як викликаються функції. Наприклад, ось тут описана призначена для користувача функція (тобто така, якій спочатку в вашій мові програмування не було), яка робить те ж, що оператор суми, а саме складає два числа:

-- така функція складе значення змінних $ a $ і $ b $, тобто зробить в точності те ж, що і оператор суми, але зауважте, що тут використовується зовсім інша запису передачі даних для операції над ними - це як раз "комп'ютерний" стиль, коли дані для операції перераховуються в дужках після її імені.

Яка різниця (запис в коді)

Прийшов час проговорити про різницю між тим що називають оператором і тим що називають функцією.

Отже ще раз, припустимо, що в вашій мові програмування є:

  • оператор додавання чисел $ + $
  • функція $ sum () $ обчислює суму двох чисел (не важливо стандартна вона або ви написали її самі, використовуючи можливості мови програмування, який ви використовуєте).

і нехай у вас є завдання записати в змінну $ z $ суму двох числових літералів (ну або просто "суму двох чисел") $ 2 $ і $ 5 $.

Тоді з використанням оператора це робиться так:

А з використанням функції так:

-- як ми бачимо і той і той підхід виробляє дію над даними, але запис різна. Оператори зазвичай використовуються в "шкільному" сенсі, тобто дані знаходяться праворуч і ліворуч, наприклад, як в операторах роботи з залишком в Паскалі.

Що могло б бути - якби операторів взагалі не було

Таким чином, ми бачимо, що якби була можливість визначити (створити) функцію з ім'ям "+" (з одного символу), то ми могли б робити такий виклик, для складання:

ну або із записом в змінну:

-- але зазвичай так не пишуть (та й багатьма мовами не дають створювати функції, імена яких збігаються із записом операторів).

Тобто різні форми запису пов'язані радше з традицією і зручністю сприйняття.
Перейдемо до висновків.

Чим схожі функції і оператори:

  1. і ті і інші виробляють дії над даними (операції), тому оператор часто називають "знаком операції", а функцію можна називати "ім'ям операції".
  2. і ті і інші "повертають" результат, після виконання дії / дій над даними.

Чим відрізняється функція від оператора:

  1. Оператори зазвичай є частиною ядра мови програмування, у багатьох мовах програміст не може створювати нових операторів, в ось свої підпрограми (напр. Функції) писати може.
  2. Оператори в реальному програмуванні зазвичай виконують більш "прості" дії ніж функції.
  3. Дані для роботи операторів і для роботи функції в коді передаються по-різному (про це було вище).

Key Words for FKN + antitotal forum (CS VSU):

Схожі статті