2010-03-17 3 views
6

In Java eine ‚statische Methode‘ würde wie folgt aussehen:Wie sieht eine statische Java-Methode in Ruby aus?

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

Was ist das Äquivalent ‚Ruby Weg‘ eine ‚statische Methode‘ zu schreiben?

Antwort

5

Anders' Antwort ist richtig, aber für Utility-Methoden wie mean Sie nicht brauchen, um eine Klasse zu verwenden, können Sie die Methode in einem module setzen:

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

Das Verfahren würde in der gleichen Art und Weise aufgerufen werden:

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

Autonomes:

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

Horse.say 
+4

wow traf nie ein Pferd, das moo sagte: P –

+3

Es ist ein ganz besonderes Pferd :) – aoj

+0

@Nathan W: Ich dachte, dass [Horse] (http://en.wikipedia.org/wiki/Footrot_Flats#Main_characters) miau ging. –

Verwandte Themen