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