Цель-C: Почему это называется «id»? - PullRequest
27 голосов
/ 30 января 2009

Почему тип объекта Objective-C называется 'id'? В отличие, скажем, от «объекта»?

Ответы [ 5 ]

47 голосов
/ 30 января 2009

Это называется id, потому что это буквально все, что представляет тип - идентификатор.

Цитата Брэда Кокса из Объектно-ориентированное программирование: эволюционный подход (собственно, первое издание, одна из первых книг ОО, которые я купил): Идентификатор занимает фиксированное количество места, широко достаточно, чтобы идентифицировать столько объектов, сколько может существовать одновременно. Это пространство не совпадает с пространством, занимаемым личными данными в самом объекте. Идентификаторы объекта - числа фиксированного размера, ...

8 голосов
/ 30 января 2009

Я предполагаю, что другой возможностью, не упомянутой здесь, было бы то, что люди Objective-C были латинскими любителями и основывали это на единственном числе именительном падеже / винительном падеже (субъект / объект) от латинского местоимения id (означающего «это»). Это своего рода родовое слово, направленное на конкретный объект, а id - указатель на родовой объект, поэтому вы никогда не узнаете:).

2 голосов
/ 30 января 2009

Теория без доказательства:

Как насчет «идентичности», потому что это указатель на любой уникальный объект.

2 голосов
/ 30 января 2009

Может быть, это идентификатор системы классов (как в идентификаторе Фрейда / эго / суперэго) - это имеет смысл, учитывая, что идентификатор является основной природой организма. Не то чтобы я все равно поверил в этот мусор Фрейда: -).

Или, возможно, разработчики Obj-C пришли из школы имен UNIX (с "ls" или "cd"), а не из школы VAX (с ее "show directory" и "set directory").

Или это могут быть, например, данные, что, вероятно, более вероятно.

0 голосов
/ 30 января 2009

Как отмечает Райан, на самом деле это указатель: IIRC - это NSObject *.

Что касается именования - возможно, в именирке используется раскладка клавиш Дворака. В этом случае «id» действительно легко набрать (это похоже на «gh» в Qwerty).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...