Какой метод вызывается [...] в Ruby?

Этот код вызывает Array::[] с 1, 2 а также 3 в качестве аргументов:

Array[1, 2, 3] #=> [1, 2, 3]

Но это не похоже на Array::[]:

[1, 2, 3] #=> [1, 2, 3]

Итак, какой метод вызывается [...] в рубине?

Мотивация: я пытаюсь заглушить метод в тесте.

1 ответ

Решение

Это буквальный синтаксис для массива. Это не сообщение отправлено. Ruby, как и подавляющее большинство других языков, не допускает перегрузки литералов.

Если вам нужна буквальная перегрузка, вы должны использовать язык, который ее поддерживает, например Ioke.

Другие вопросы по тегам