На что статический метод Java похож в Ruby?

В 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 способ' записи 'статического метода'?

6
задан Hosh 17 March 2010 в 05:25
поделиться

2 ответа

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

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

Метод будет вызываться таким же образом:

avg = MyUtils.mean([1,2,3,4,5])
5
ответ дан 8 December 2019 в 16:01
поделиться

Use self:

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

Horse.say
10
ответ дан 8 December 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: