Перейти до вмісту

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

Матеріал з Вікіпедії — вільної енциклопедії.

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

Визначення

[ред. | ред. код]

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

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

Приклади

[ред. | ред. код]

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

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

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

[ред. | ред. код]

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

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

Посилання

[ред. | ред. код]