Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

06.04.2010, 23:57
|
|
Познающий
Регистрация: 06.07.2009
Сообщений: 54
Провел на форуме: 65872
Репутация:
17
|
|
Например у объекта класс .class это Class а superclass это Object
в свою очередь у Class класс это он сам и есть, а superclass это Module и так далее..
это в 1.8
|
|
|

07.04.2010, 15:05
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Сообщение от Flcn
Например у объекта класс .class это Class а superclass это Object
в свою очередь у Class класс это он сам и есть, а superclass это Module и так далее..
это в 1.8
эээ... ну чтото вы путаете. class и superclass это не термины руби
class - это класс
superclass - это класс предок(наследованный класс)
Код:
class Tree
...
end
class Oak < Tree
...
end
myOak = Oak.new
Тогда классом для myOak будет Oak, a superclass для myOak будет Tree.
ответ придумайте сами. и то класс и это
Последний раз редактировалось geezer.code; 07.04.2010 в 15:49..
|
|
|

08.04.2010, 18:17
|
|
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме: 1410429
Репутация:
214
|
|
как однозначно определить тип входной переменной для метода.
что-то типа
Код:
def (String a)
...
end
только это не верно
|
|
|

09.04.2010, 17:41
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Сообщение от lukmus
как однозначно определить тип входной переменной для метода.
что-то типа
Код:
def (String a)
...
end
только это не верно
в чем сокровенный смысл?
Насколько я знаю, средствами языка - никак. Это противоречит принципу duck-typing.
P.S.
есть сторонние либы,которые позволяют провернуть такой трюк.
http://mephle.org/StrongTyping/
http://www.rubyist.net/~nobu/ruby/overload.tar.bz2
однако такой подход не ruby-style.
Последний раз редактировалось geezer.code; 09.04.2010 в 17:48..
|
|
|

19.04.2010, 14:56
|
|
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме: 1410429
Репутация:
214
|
|
Сообщение от geezer.code
в чем сокровенный смысл?
Насколько я знаю, средствами языка - никак. Это противоречит принципу duck-typing.
P.S.
есть сторонние либы,которые позволяют провернуть такой трюк.
http://mephle.org/StrongTyping/
http://www.rubyist.net/~nobu/ruby/overload.tar.bz2
однако такой подход не ruby-style.
можно и проще это сделать без сторонних библиотек, напр:
Код:
def fucn (a)
if !(a.is_a? String) then return -1 end
...
end
но только это не круто
|
|
|

20.04.2010, 12:06
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме: 7452489
Репутация:
1359
|
|
Сообщение от lukmus
можно и проще это сделать без сторонних библиотек, напр:
Код:
def fucn (a)
if !(a.is_a? String) then return -1 end
...
end
но только это не круто
это не совсем то о чем я хотел написать.
эти либы дают возможность не просто проверить тип, а именно вызвать ту функцию, переданный аргумент которой соответствует принимаемому.
то есть банальная перегрузка методов, которая с самого начала не предусмотрена в языке.
|
|
|

25.04.2010, 23:57
|
|
Познающий
Регистрация: 11.04.2009
Сообщений: 47
Провел на форуме: 116295
Репутация:
2
|
|
Что посмотрел я на этот руби выводы: он по ходу более объектно ориентированный чем питон, синтаксис у него избыточный(эти if then endif else endelse). Помню когда-то читал что тормознутый он, насколько слабее питона, никто не скажет? Покажите мне хотя бы одну программу на руби.
|
|
|

26.04.2010, 00:17
|
|
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме: 1410429
Репутация:
214
|
|
Сообщение от XPYMGT
Что посмотрел я на этот руби выводы: он по ходу более объектно ориентированный чем питон, синтаксис у него избыточный(эти if then endif else endelse). Помню когда-то читал что тормознутый он, насколько слабее питона, никто не скажет? Покажите мне хотя бы одну программу на руби.
metasploit, есть nmap на ruby, ROR итд, их немерянно, а насчет тормознутости ты частично не прав, вот тест скорости хабравцев:
по ООП он уступит только Smalltalk
|
|
|

02.06.2010, 02:22
|
|
Новичок
Регистрация: 01.06.2010
Сообщений: 3
Провел на форуме: 6544
Репутация:
0
|
|
Сообщение от geezer.code
это не совсем то о чем я хотел написать.
эти либы дают возможность не просто проверить тип, а именно вызвать ту функцию, переданный аргумент которой соответствует принимаемому.
то есть банальная перегрузка методов, которая с самого начала не предусмотрена в языке.
такого конечно нету.
В том плане что красиво объявить аргументы функции не получится. Но можно создать прокси-объект и еще тонну извращений.
В общем я потихоньку копаю си и сорсы руби и могу сделать своё глупое заключение -> разработчики просто не стали париться.
(да и нафига оно надо? -> как уже кто-то здесь сказал: "return unless args.kind_of? Array"
Объект в руби это обычная си-структуфра.
Когда мы передаем объект в аргумент функции, передаётся не сам объект, а только указатель на него (сам объект лежит в хипе).
Так что возможно разработчики решили упростить. Что в общем вполне нормально для языка такого типа.
+ не смотря на то, что указать класс явно нельзя - возможности аргументов в руби просто шикарны ( *args/ procs-objects/ blocks )
|
|
|

02.06.2010, 02:25
|
|
Новичок
Регистрация: 01.06.2010
Сообщений: 3
Провел на форуме: 6544
Репутация:
0
|
|
Сообщение от XPYMGT
Что посмотрел я на этот руби выводы: он по ходу более объектно ориентированный чем питон, синтаксис у него избыточный(эти if then endif else endelse). Помню когда-то читал что тормознутый он, насколько слабее питона, никто не скажет? Покажите мне хотя бы одну программу на руби.
1.8 конечно медленный.
1.9 -> в 5 раз быстрее (потому как встроили виртуальную машину)
есть реализация Jruby которая работает вроде бы в 1.5 раза быстрее 1.9
+ есть реализация на C# (IronRuby)
+ есть реализация с использованиями llvm (или какой-то другой вирт машины)
В целом можно сказать что скорость последних версий руби сравнима со скоростью пайтона. (конечно же обычного)
В любом случае, движуха в сторону ускорения руби имеется.
P.S. синтаксис аля перл. можно сказать что избыточен, по началу напрягает то, что можно обходиться без return ->
PHP код:
def is_equal()
true if object
end
с другой стороны писать return xxx if yyy иногда очень удобно.
конечно никто не запрещает писать старое доброе
if yyy
xxx
или даже
if yyy then xxx;
можно даже ставить ';' в конце
+ очень крутые нововведения в нейминге методов, например:
PHP код:
def finded?(object)
return true if Objects.exists?(object)
end
def baaang!(object)
и т.д. )
Последний раз редактировалось xciss; 02.06.2010 в 02:30..
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
[Wi-Fi, BT] Задай вопрос - получи ответ!
|
Alexsize |
Беспроводные технологии/WPAN/WLAN |
2564 |
06.04.2026 23:31 |
|
Задай вопрос - получи Ответ
|
Thanat0z |
Расшифровка хешей |
489 |
16.06.2010 17:34 |
|
[Flash, ActionScript] Задай вопрос, получи ответ
|
mff |
PHP, PERL, MySQL, JavaScript |
213 |
13.06.2010 11:17 |
|
WebServers (apache, nginx, lighttpd, iis) - Задай вопрос, получи ответ.
|
Krist_ALL |
Администрирование |
8 |
28.05.2010 20:56 |
|
ВКонтакте "счастливый фермер"
|
ЖенькО |
Социальные сети |
309 |
22.07.2009 11:35 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|