2010-03-17 13 views
6

En Java, un 'método estático' se vería así:¿Qué aspecto tiene un método estático de Java en Ruby?

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); 

¿Cuál es la 'Rubí manera' equivalente a escribir un 'método estático'?

Respuesta

5

respuesta Anders' es correcto, sin embargo para los métodos de utilidad como mean que no es necesario utilizar una clase, puede poner el método en un module:

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

el método se llama de la misma manera:

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

Uso auto:

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

Horse.say 
+4

wow nunca conoció a un caballo que dijo moo: P –

+3

Es un caballo muy especial :) – aoj

+0

@Nathan W: Pensé que [Caballo] (http://en.wikipedia.org/wiki/Footrot_Flats#Main_characters) se miaow. –

Cuestiones relacionadas