Показать сообщение отдельно

  #99  
Старый 02.06.2010, 02:22
xciss
Новичок
Регистрация: 01.06.2010
Сообщений: 3
С нами: 8392314

Репутация: 0
По умолчанию

Цитата:
Сообщение от geezer.code  
это не совсем то о чем я хотел написать.
эти либы дают возможность не просто проверить тип, а именно вызвать ту функцию, переданный аргумент которой соответствует принимаемому.
то есть банальная перегрузка методов, которая с самого начала не предусмотрена в языке.
такого конечно нету.
В том плане что красиво объявить аргументы функции не получится. Но можно создать прокси-объект и еще тонну извращений.

В общем я потихоньку копаю си и сорсы руби и могу сделать своё глупое заключение -> разработчики просто не стали париться.
(да и нафига оно надо? -> как уже кто-то здесь сказал: "return unless args.kind_of? Array"

Объект в руби это обычная си-структуфра.
Когда мы передаем объект в аргумент функции, передаётся не сам объект, а только указатель на него (сам объект лежит в хипе).

Так что возможно разработчики решили упростить. Что в общем вполне нормально для языка такого типа.

+ не смотря на то, что указать класс явно нельзя - возможности аргументов в руби просто шикарны ( *args/ procs-objects/ blocks )
 
Ответить с цитированием