Как статический метод Java выглядит в Ruby? - PullRequest
6 голосов
/ 17 марта 2010

В Java «статический метод» будет выглядеть так:

class MyUtils {
    . . .
    public static double mean(int[] p) {
        int sum = 0;  // sum of all the elements
        for (int i=0; i<p.length; i++) {
            sum += p[i];
        }
        return ((double)sum) / p.length;
    }
    . . .
}

// Called from outside the MyUtils class.
double meanAttendance = MyUtils.mean(attendance);

Каков эквивалентный "Ruby-способ" написания "статического метода"?

Ответы [ 2 ]

10 голосов
/ 17 марта 2010

Используйте себя:

class Horse
  def self.say
    puts "I said moo."
  end
end

Horse.say
5 голосов
/ 17 марта 2010

Ответ Андерса верен, однако для служебных методов, таких как mean, вам не нужно использовать класс, вы можете поместить метод в модуль :

module MyUtils
  def self.mean(values)
    # implementation goes here
  end
end

Метод будет вызван так же:

avg = MyUtils.mean([1,2,3,4,5])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...