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

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

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

Цитата:
Сообщение от Flcn  
Например у объекта класс .class это Class а superclass это Object
в свою очередь у Class класс это он сам и есть, а superclass это Module и так далее..
это в 1.8
там вот в чем фигня, есть так называемые области видимости. (контексты)

PHP код:
class Base    
puts 
"#{self.class.name}"  
end 
выведет Class, потому что описание класса тоже является объектом ( а мы знаем, что в руби ВСЁ является объектом )

Раз self в теле описания класса является объектом 'Class' (всё кроме объявления методов экземпляров класса)
то мы можем вот что сделать:

PHP код:
class Base
    def self
.test(string)
       
puts "#{string} from #{self.class.name}"
    
end
end 
def self -> объявляем метод в контексте класса Class, то есть создаём метод для объекта этого класса.

Теперь мы сможем сделать следующее:

PHP код:
// для наглядности унаследуем новый класс от класса Base
// все методы, в том числе и методы класса Class тоже унаследуются

class Core Base
  test 
"This is test str"
end 
этот код напишет:
This is test str from Class

В общем то на этом принципе основано море программ (например Rails)

PHP код:
class User
  named_scope 
:not_activated, :conditions => ["active = ?"0]
end 
и затем где угодно в Rails-app:

PHP код:
users_to_clear User.not_activated()
users_to_clear.each do |user|
  
user.destroy()
end 

Последний раз редактировалось xciss; 02.06.2010 в 02:54..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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