Об'єкт першого класу

Об'єкт першого класу (також англ. First-class citizen, громадянин першого класу) — сутність, яка може бути побудована в рантаймі (під час виконання програми), передаватись як параметр, повертатись з підпрограми, або присвоюватись змінній. Цей термін був придуманий Крістофером Стречі в контексті «функції як громадяни першого сорту» в середині 1960-х років.

Визначення

Об'єкти є об'єктами першого класу коли:

  • можуть бути збережені в змінних і структурах даних
  • можуть бути передані як параметр у підпрограму
  • можуть бути повернуті в результаті роботи підпрограми
  • можуть бути побудовані під час виконання
  • мають внутрішню ідентичність (незалежно від імені)

Приклади

Слово об'єкт вживається тут не в сенсі ООП. Так наприклад скалярні об'єкти такі як цілі та числа з плаваючою крапкою майже в усіх мовах є об'єктами першого класу.

В С та С++ функція не є об'єктом першого класу, тому що не може бути створена під час виконання програми.

Об'єкти другого та третього класу

Рафаель Фінкель пропонує визначення об'єктів другого та третього класу. Але його визначення об'єкту першого класу суперечить визначенням інших авторів: він не вимагає можливості створення під час виконання програми

ДіяПершийДругийТретій
Передати значення як параметрТакТакНі
Повернути значення з процедуриТакНіНі
Присвоїти значення зміннійТакНіНі

Посилання


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.