Почему «super» является ключевым словом, а не методом в Ruby?

В Ruby super - это ключевое слово , а не метод.

Почему он был разработан таким образом?

Дизайн Ruby стремится реализовать как можно больше методов; Ключевые слова обычно зарезервированы для языковых функций, которые имеют свои собственные правила грамматики. Однако super выглядит и действует как вызов метода.

(Я знаю, что было бы обременительно реализовать super на чистом Ruby, так как он должен был бы анализировать имя метода из вызывающего или использовать trace_func . Само по себе это не помешает ему быть методом, потому что многие методы Kernel не реализованы в чистом Ruby.)

9
задан daxelrod 10 December 2011 в 04:24
поделиться