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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

Визначення[ред.ред. код]

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

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

Приклади[ред.ред. код]

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

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

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

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

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

Посилання[ред.ред. код]