2016-07-21 5 views
0

У меня есть немного вопроса обзорного здесь я считаю, и был бы признателен за любые советы спасибопередать переменную по классам

$variable_1 = 0 

module Yogi 
    class ErrorInside 
    def yogify 
     $variable_1 = new_value 
    end 
    end 



    class CheckErrors 
    def checker 
    $variable_1 += 1 
    end 
    end 
end 

Я хотел бы $ variable_1, чтобы сохранить новое значение полученый в классе ErrorInside и использовать он в функциях класса CheckErrors, но он возвращает их в 0, как кажется.

Любое сообщение о том, как достичь этой переменной1, поддерживает новое значение из класса ErrorInside?

Кроме того, каждый класс вызывается в отдельных исполняемых файлах, поэтому запущенный класс ErrorInside снова перед запуском класса CheckErrors не может быть и речи.

идея Тхо иметь новое значение $ variable1 globaly доступны для всех классов, выполненных на более позднем этапе

ответ

1

Вам нужно разобраться в том, как вы называете вам классы, модули и определения. Классы и модули принимают константы, так как их имена и методы используют snake casing. Затем, используя правильную нотацию, вызовите свои методы после создания новых экземпляров Class1 и Class2.

$variable1 = 0 

module Module1 
    class Class1 
    def method_1 
     $variable1 = 10 
    end 
    end 

    class Class2 
    def method_1 
     $variable1 += 1 
    end 
    end 
end 

Module1::Class1.new.method_1 
$variable1 #=> 10 

Module1::Class2.new.method_1 
$variable1 #=> 11 
+2

Я настоятельно призываю всех, кто читает этот ответ, посмотреть исходную версию вопроса. ОП изменил свой вопрос (после того, как я опубликовал некоторые рекомендации), который теперь частично отдает часть моего ответа. –

+0

попытался сделать его более нужным для людей, которые не читали о проблеме ... проблема очень упрощена, а ее не синтаксис, это определение того, что такое proplem, на который я пытаюсь найти решение. поэтому я сделал его опрятным для людей, висящих на синтаксических вещах – Yogi

Смежные вопросы