«Все является объектом», любое название для этой функции?

#ruby #object #dynamic

#ruby #объект #динамический

Вопрос:

В некоторых языках (особенно динамически типизированных) все, даже значения, является объектом. Как в Ruby, вы можете сказать:

5.раз {сделай что-нибудь }

[ 5 — это объект, а не примитив, поэтому вы можете вызвать метод (раз) для него. ]

Есть ли у этой языковой функции имя?

Комментарии:

1. Чистый объектно-ориентированный язык, не так ли?

2. @delnan В большинстве языков (возьмем, к примеру, PHP) литеральные числа являются целыми числами. Они являются примитивами. Они не являются объектами типа Integer или что-то в этом роде, поэтому вы не можете сказать: 6.добавьте (5) и получите 11. Но в Scala вы можете сказать: 6. (5) и получить 11, который снова является объектом : (6. (5)).-(3) результат равен 8 [примерно «. ()» означает «.add ()» в Scala ]

3. @ashy_32bit: Я знаю. Я хотел предложить вам просто придерживаться этой фразы. Она хорошо узнаваема, относительно четко определена и описательна.

4. @delnan Ага, теперь это имеет смысл 🙂

Ответ №1:

Я думаю, что эта функция «Все является объектом» хорошо отображается на чистых / истинных объектно-ориентированных языках. Здесь возникает вопрос о JAVA, является ли это чистым языком OO или нет. Я не могу найти другое конкретное название «Все является объектом», поэтому я бы назвал это так.

Комментарии:

1. по-видимому, EiaO недостаточно для того, чтобы язык назывался чистым ООПЛ, но это действительно необходимо.

Ответ №2:

Я знаю, давайте придумаем условия

  1. Объектно-ориентированный язык OBL (Ruby …)
  2. Объектно-ориентированный язык OOL (Java …)
  3. Объектно-расширенный язык OXL (C , ObjectiveC …)

Что вы думаете? Добавьте язык в каждую категорию.

Ответ №3:

Язык программирования Ruby (в соавторстве с Matz) описывает Ruby как имеющую «очень чистую объектно-ориентированную модель программирования».

Обратите внимание, что в Ruby не каждая конструкция синтаксиса является объектом. Существуют ключевые слова и операторы, которые не являются ни объектами, ни методами для объектов. Я подозреваю, что у этой языковой функции нет глянцевого названия, потому что ни у одного языка нет этой функции.

Но если вы сузите свое определение всего до каждого значения… Ну, это другое. 🙂