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

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

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


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

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

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

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

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

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

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

Manipulation First Second Third
Pass value as a parameter yes yes no
Return value from a procedure yes no no
Assign value into a variable yes no no