Что [] означает здесь? - PullRequest
       1

Что [] означает здесь?

4 голосов
/ 11 августа 2011
$self->[UTF8] = $conf->{utf8};

Никогда раньше не видел такого кода.

Что означает [] здесь?

Ответы [ 2 ]

11 голосов
/ 11 августа 2011

В этом случае объект $self реализован как ссылка на благословенный массив, а не как гораздо более распространенный метод использования ссылки на благословенный хэш. Синтаксис $foo->[42] обращается к одному элементу из ссылки на массив. Предположительно, UTF8 - это константа, которая возвращает числовой индекс в массив.

Иногда вы видите эту идиому, когда люди убеждены (обычно неверно), что поиск хеша по атрибутам объекта приводит к значительным накладным расходам и пытается преждевременно оптимизировать свой код.

3 голосов
/ 11 августа 2011

[] подразумевает, что $self является ссылкой на список / массив (при условии, что код работает). Это выглядит немного странно, так как индексы списка должны быть числовыми.

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