Ruby静态方法在Ruby中看起来像什么?

时间:2010-03-17 05:25:56

标签: 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方式”是什么?

2 个答案:

答案 0 :(得分:10)

使用self:

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

Horse.say

答案 1 :(得分:5)

Anders的回答是正确的,但对于像mean这样的实用方法,您不需要使用类,可以将该方法放在module中:

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

该方法将以相同的方式调用:

avg = MyUtils.mean([1,2,3,4,5])