ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #91  
Старый 06.04.2010, 23:57
Аватар для Flcn
Flcn
Познающий
Регистрация: 06.07.2009
Сообщений: 54
Провел на форуме:
65872

Репутация: 17
Отправить сообщение для Flcn с помощью ICQ
По умолчанию

Например у объекта класс .class это Class а superclass это Object
в свою очередь у Class класс это он сам и есть, а superclass это Module и так далее..
это в 1.8
 
Ответить с цитированием

  #92  
Старый 07.04.2010, 15:05
Аватар для geezer.code
geezer.code
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..
 
Ответить с цитированием

  #93  
Старый 08.04.2010, 18:17
Аватар для lukmus
lukmus
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме:
1410429

Репутация: 214


По умолчанию

как однозначно определить тип входной переменной для метода.
что-то типа
Код:
def (String a)
...
end
только это не верно
 
Ответить с цитированием

  #94  
Старый 09.04.2010, 17:41
Аватар для geezer.code
geezer.code
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..
 
Ответить с цитированием

  #95  
Старый 19.04.2010, 14:56
Аватар для lukmus
lukmus
Постоянный
Регистрация: 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
но только это не круто
 
Ответить с цитированием

  #96  
Старый 20.04.2010, 12:06
Аватар для geezer.code
geezer.code
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
но только это не круто
это не совсем то о чем я хотел написать.
эти либы дают возможность не просто проверить тип, а именно вызвать ту функцию, переданный аргумент которой соответствует принимаемому.
то есть банальная перегрузка методов, которая с самого начала не предусмотрена в языке.
 
Ответить с цитированием

  #97  
Старый 25.04.2010, 23:57
Аватар для XPYMGT
XPYMGT
Познающий
Регистрация: 11.04.2009
Сообщений: 47
Провел на форуме:
116295

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

Что посмотрел я на этот руби выводы: он по ходу более объектно ориентированный чем питон, синтаксис у него избыточный(эти if then endif else endelse). Помню когда-то читал что тормознутый он, насколько слабее питона, никто не скажет? Покажите мне хотя бы одну программу на руби.
 
Ответить с цитированием

  #98  
Старый 26.04.2010, 00:17
Аватар для lukmus
lukmus
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме:
1410429

Репутация: 214


По умолчанию

Цитата:
Сообщение от XPYMGT  
Что посмотрел я на этот руби выводы: он по ходу более объектно ориентированный чем питон, синтаксис у него избыточный(эти if then endif else endelse). Помню когда-то читал что тормознутый он, насколько слабее питона, никто не скажет? Покажите мне хотя бы одну программу на руби.
metasploit, есть nmap на ruby, ROR итд, их немерянно, а насчет тормознутости ты частично не прав, вот тест скорости хабравцев:

по ООП он уступит только Smalltalk
 
Ответить с цитированием

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

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

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

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

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

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

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

  #100  
Старый 02.06.2010, 02:25
Аватар для xciss
xciss
Новичок
Регистрация: 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)
 


Быстрый переход




ANTICHAT.XYZ