Подтвердить что ты не робот

Objective-C: Почему он называется 'id'?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

Что касается именования - возможно, пользователь использует макет ключа Dvorak. "id" действительно легко ввести в этом случае (это похоже на ввод "gh" на Qwerty).