Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Объект первого класса

Из Википедии — свободной энциклопедии

Объектами первого класса (англ. first-class object, first-class entity, first-class citizen) в контексте конкретного языка программирования называются элементы, которые могут быть переданы как параметр, возвращены из функции, присвоены переменной[1].

Понятие объектов первого и второго классов было предложено в 1967 г. Кристофером Стрэчи в статье «Understanding Programming Languages», где процедуры языка Алгол, в противоположность действительным числам, он сравнил с подвергающимися социальной дискриминации «людьми второго сорта» (англ. second-class citizens)[2].

Энциклопедичный YouTube

  • 1/3
    Просмотров:
    220 777
    233 422
    240 138
  • #1. Классы и объекты. Атрибуты классов и объектов | Объектно-ориентированное программирование Python
  • Python с нуля. Урок 10 | Классы и объекты
  • ООП 1 Классы, объекты, экземпляры классов. Объектно-ориентированное программирование в Python

Субтитры

Определение

Объект называют «объектом первого класса», если он[3][4]:

Термин «объект» используется здесь в общем смысле и не ограничивается объектами языка программирования. Так, значения простейших типов данных, например, integer и float, во многих языках являются «объектами первого класса».

Примеры

В C и C++ нельзя создавать функции во время выполнения программы, поэтому функции не являются объектами первого класса в этих языках. В то же время указатели на функцию можно передавать в качестве аргумента и возвращать из другой функции, поэтому иногда функции в C++ называют объектами второго класса (англ. second-class object). Тем не менее, в C++ есть понятие функционального объекта (англ. function object), который является объектом первого класса и реализует эквивалентную функциям семантику[3].

В Smalltalk[5] , Scala, и JavaScript[6] функции (методы) и классы являются объектами первого класса. Поскольку операторы (+, -) в Smalltalk по сути методы, они также являются объектами первого класса.

Пример кода на языке Nim.

# присвоим процедуру переменной
var value = proc() =
  echo "value"

value() # вызов процедуры
var value2 = value
value2() # вызов процедуры

# процедура будет передана другой
proc two(): string =
  return "two"

# процедура будет получать другую процедуру
proc wrap(x: proc) =
  echo "one"
  echo x()
  echo "three"

# вызов процедуры которая получает на вход другую процедуру
wrap(two)

# процедура, которая возвращает процедуру
proc closure(x: int): proc =
  proc res(y:int): int =
    return y*y+x
  return res

var result = closure(2) # вызовем процедуру которая вернет другую процедуру
echo result(3) # вызов внутренней процедуры

Примечания

  1. Scott, Michael. Programming Language Pragmatics (неопр.). — San Francisco, CA: Morgan Kaufmann Publishers, 2006. — С. 140.
  2. Rod Burstall, «Christopher Strachey—Understanding Programming Languages», Higher-Order and Symbolic Computation13:52 (2000). Дата обращения: 2 ноября 2013. Архивировано из оригинала 12 августа 2017 года.
  3. 1 2 First Class. C2.com (25 января 2006). Дата обращения: 16 июля 2012. Архивировано 16 июля 2012 года.
  4. first class object. Catalysoft.com. Дата обращения: 9 октября 2010. Архивировано 6 августа 2012 года.
  5. First class functions in many programming languages (examples). Дата обращения: 21 июля 2012. Архивировано 11 июня 2010 года.
  6. Functions are first class objects in JavaScript. Дата обращения: 21 июля 2012. Архивировано из оригинала 27 июля 2012 года.
Эта страница в последний раз была отредактирована 14 мая 2024 в 09:43.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).