Что означают «я» и «новое» в Ruby с точки зрения Java? - PullRequest
3 голосов
/ 05 января 2012

Я просматриваю код с открытым исходным кодом и не могу обернуть голову вокруг этого фрагмента.

class Something
    def self.smart
       new.smart
    end

    def smart 
      "test"
    end
end

class Other < Something

println Other.smart

Код пытается создать новый экземпляр каждый раз, когда вызывается smart?

1 Ответ

2 голосов
/ 05 января 2012
def self.smart
       new.smart
end

эквивалентен методу static, к которому можно обратиться, используя имя класса.

... static ... smart()

и

def smart 
      "test"
end

эквивалентен instance методу, для доступа нужен

... smart()

new такой же, как в java, создал экземпляр класса.

и все это эквивалентно.

public static .... smart(){
   new ClassName().smart();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...