HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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 Беспроводные технологии/Wi-Fi/Wardriving 2569 10.05.2026 13:27
Задай вопрос - получи Ответ Thanat0z Криптография, расшифровка хешей 490 09.05.2026 16:06
[Flash, ActionScript] Задай вопрос, получи ответ mff PHP 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 ™ © 2001- Antichat Kft.