Об'єкт першого класу
Об'єкт першого класу (також англ. First-class citizen, громадянин першого класу) — сутність, яка може бути побудована в рантаймі (під час виконання програми), передаватись як параметр, повертатись з підпрограми, або присвоюватись змінній. Цей термін придумав Крістофер Стречі в контексті «функції як громадяни першого сорту» в середині 1960-х років.
Об'єкти є об'єктами першого класу коли:
- можуть бути збережені в змінних і структурах даних
- можуть бути передані як параметр у підпрограму
- можуть бути повернуті в результаті роботи підпрограми
- можуть бути побудовані під час виконання
- мають внутрішню ідентичність (незалежно від імені)
Слово об'єкт вживається тут не в сенсі ООП. Так, наприклад, скалярні об'єкти такі як цілі та числа з плаваючою крапкою майже в усіх мовах є об'єктами першого класу.
В С та С++ функція не є об'єктом першого класу, тому що не може бути створена під час виконання програми.
Рафаель Фінкель пропонує визначення об'єктів другого та третього класу. Але його визначення об'єкта першого класу суперечить визначенням інших авторів: він не вимагає можливості створення під час виконання програми
Дія | Перший | Другий | Третій |
---|---|---|---|
Передати значення як параметр | Так | Так | Ні |
Повернути значення з процедури | Так | Ні | Ні |
Присвоїти значення змінній | Так | Ні | Ні |
Ця стаття не містить посилань на джерела. (грудень 2016) |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |