Об'єкт першого класу: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
SrgSoroka (обговорення | внесок)
Створена сторінка: У дизайні мов програмування, а також First-class citizen є сутність, яка може бути побудовано в р...
 
SrgSoroka (обговорення | внесок)
Немає опису редагування
Рядок 1:
У дизайні мов програмування, а також ще називаються First-class citizen (громадяни першого класу) є сутність, яка може бути побудованопобудована в ранта́ймі (під час виконання програми), передається як параметр, повертається з підпрограми , або призначені змінній. Цей термін був придуманий Крістофер Стречі в контексті "функції в якості громадян першого сорту" в середині 1960-х років.
 
Визначання
Приклади
Об'єкти другого і третього класу
Об'єкти являються об'єктом першого класу коли:
 
 
можуть бути збережені в змінних і структур даних
==Визначення==
можуть бути переданий в якості параметра в підпрограму
Об'єкти являються об'єктом першого класу коли:
можуть бути повернуті в результаті роботи підпрограми
*можуть бути збережені в змінних і структур даних
можуть бути побудовані під час виконання
*можуть бути переданий в якості параметра в підпрограму
мають внутрішню ідентичність (незалежно від будь-якого ім'я)
*можуть бути повернуті в результаті роботи підпрограми
Приклади:
*можуть бути побудовані під час виконання
*мають внутрішню ідентичність (незалежно від будь-якого ім'я)
==Приклади==
Слово об'єкт вживається тут не в сенсі ООП. Так наприклад скалярні об'єкти такі як цілі та з плаваючою точкою майже в усіх мовах являються об'єктами першого класу.
В С та С++ функція не являється об'єктом першого класу, тому що не може бути створена рантайм.
==Об'єкти другого та третього класу:==
[[Рафаель Фінкель]] <ref>Finkel, R. Advanced Programming language Design, p 73</ref> пропонує визначення об'єктів другого та третього класу. Але його визначення об'єкту першого класу протилежне до визначень інших авторів : він не вимагає можливаості створення рантайм
 
{| class="wikitable"