2015-05-06 5 views
0

Может кто-нибудь помочь мне преобразовать этот простой код java в ruby.Преобразуйте образец кода Java в ruby, чтобы понять статические variales в ruby.

class A { 
private static String[] chachedNames; 

public static String[] getNames(){ 
    if(chachedNames == null) 
    chachedNames = prepareNames(); //This process will take 20sec to complete 
    return chachedNames; 
} 
} 

Я пытаюсь понять базовое кэширование памяти по статическому методу. Как реализовать на Ruby.

ответ

2

Использование @@ присвоить переменную класса, который является общим для всех экземпляров этого класса:

class A 
    @@cached_names = nil 

    def self.get_names 
    @@cached_names = prepare_names if [email protected]@cached_names 
    @@cached_names 
    end 
end 

Ключевое слово self средство назначить метод как метод класса (аналог статического метода в Java). Без ключевого слова self метод становится методом экземпляра.

Приятный summary of class and instance methods:

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

  • Нет связанных вопросов^_^