Normalerweise verwende ich Puts und Print, aber ich habe mich gefragt, wer das ist. Als ich es nachgeschlagen habe, scheint es eine Methode zu sein, die im Kernelmodul enthalten ist. Da es "Kernel-Modul?" Wurde, habe ich es überprüft.
Ein Modul, das Methoden definiert, auf die alle Klassen verweisen können. Die Object-Klasse enthält dieses Modul. Die Methoden der Object-Klasse werden tatsächlich in diesem Modul definiert. Dies dient der Neudefinition von Methoden der obersten Ebene.
Erstens gibt es alle Oberklassen, die als Objektklassen bezeichnet werden, und die hier definierten Methoden können für alle Objekte verwendet werden. Und da das Karnel-Modul in dieser Object-Klasse enthalten ist, kann die Methode überall verwendet werden. (Ein Modul ist übrigens eine Funktion, die nicht wie eine Klasse instanziiert werden kann, sondern Konstanten und Methoden definieren kann.)
So was.
talk.rb
#Dieser Teil ist die oberste Ebene(Außerhalb der Klasse oder des Moduls)
def say
puts "hello"
end
#Dieser Teil ist die oberste Ebene
#Da die Human-Klasse das Objekt der übergeordneten Klasse erbt, kann die say-Methode verwendet werden.
class Human
def talk
say
end
end
human = Human.new()
human.talk
#=>hello
Ich habe meine eigenen Nachforschungen angestellt, aber ich würde mich freuen, wenn Sie auf Fehler hinweisen könnten.
Objektorientierte Skriptsprache Ruby-Referenzhandbuch https://docs.ruby-lang.org/ja/latest/class/Kernel.html
Top Level in Ruby https://www.javadrive.jp/ruby/method/index1.html
Was ist schließlich Rubys Top-Level-Methode? https://qiita.com/pink_bangbi/items/c08ec7b32fc6dd20baad
Recommended Posts