Die Programmiersprache Ruby

Blog| Forum| Wiki  

Das Kernel-Modul stellt, wie der Name schon nahelegt, eines der wichtigsten Module der Programmiersprache Ruby da. Die Klasse Object, Rubys oberste Klasse, von der alle anderen Klassen erben, mixt dieses Modul ein, was dazu führt, dass die Methoden, die in diesem Modul definiert sind, überall verfügbar sind. Der Aufruf einer Methode aus Kernel ist der wohl einfachst denkbare. Jeder kennt sie: Die Methode puts. Wer sich schon einmal gefragt hat, welches Objekt diese Methode denn beherrscht (wo in Ruby ja schliesslich alles ein Objekt ist), hat hiermit seine Antwort gefunden.

1
2
3
4
puts "A" #=> A
Kernel.puts "A" #=> A
#Kernel#puts ist allerdings nur eine Kurzschreibweise und ��quivalent mit: 
$stdout.puts "A" #=> A

Die Methoden der Klasse Object sind deswegen aber noch lange nicht überall verfügbar. Sie werden nur an Objekte vererbt und sind nicht zum direkten Einsatz gedacht. Dies ist eben der Bereich von Kernel. Auch innerhalb von anderen Namespaces als Main ist Kernel selbstverständlich verfügbar:

1
2
3
4
5
6
7
8
9
10
11
class A
  puts "A definiert"
  def b
    puts "b aufgerufen"
  end
end
puts "Rufe b auf"
A.new.b
#=> A definiert
#=> Rufe b auf
#=> b aufgerufen

Die Definition von Methoden in Kernel ist auch nicht besonders schwierig, gerade Ruby-Neulinge machen das oft:

1
2
3
4
def x
  puts "x"
end
puts defined? Kernel.x #=> method

Lieber gesehen wird es allerdings explizit markiert.

1
2
3
4
5
6
module Kernel
  def y
    puts "y"
  end
end
puts defined? Kernel.y #=> method

Siehe auch