Bis jetzt habe ich die wichtigen Konzepte von Ruby wie Instanzen und Klassen nicht klar verstanden, daher werde ich sie anhand von Beispielen erläutern. Ich denke, es ist etwas, das Sie unbedingt wissen müssen, um Ruby zu verwenden, aber es war nicht leicht zu verstehen.
・ Für diejenigen, die Ruby noch nicht kennen ・ Personen, deren Klassen und Instanzen nicht eindeutig sind
Nehmen wir als Beispiel an, dass Benutzer in einem Dienst wie Twitter mit den IDs 1 bis 3 posten, wie unten unter der Tweet-Klasse gezeigt.
Zu diesem Zeitpunkt ist jeder in ein schwarzes Quadrat eingeschlossene Beitrag eine ** Instanz **. Instanzen sind Objekte, die aus Klassentypen erstellt wurden. Und Tweet ist ** Klasse **. Ein Bild einer Instanz, die zu einer Klasse gehört. Es ist ein wichtiges Konzept in Ruby! !!
class Tweet
#Klassenmethode
def self.tweet
puts "tweet"
end
#Instanzmethode
def post_tweet(user,about)
puts "#{user}Ist#{about}Gepostet über"
end
end
#Lauf
Tweet.tweet
new_tweet = Tweet.new()
new_tweet.post_tweet("choco","Programmierung")
Nach der Ausführung
tweet
choco hat über programmierung geschrieben
-Call mit "class name.method" außerhalb der Klasse. (Tweet.tweet im obigen Beispiel) ・ Wenn Sie sich schneiden, werden Sie wütend. (** deklariert sich als Klassenmethode **) => Sie können es mit ** self definieren. Methodenname ~~ end ** in der Klasse. -Alle, neuen usw. sind vordefinierte Klassenmethoden, mit denen Sie Klassen bearbeiten können. (Alle ruft alle Instanzen der Klasse ab, new erstellt eine neue Instanz in der Klasse.)
-Call mit "instance name.method" außerhalb der Klasse. (Im obigen Beispiel new_tweet.post_tweet) Da die Instanz zu einer Klasse gehört, erstellen Sie eine Instanz mit ** class name.new ** und führen Sie die Methode für diese Instanz aus. Grundsätzlich habe ich das Gefühl, dass Instanzmethoden häufig während der Implementierung verwendet werden.
Als ich diesen Artikel schrieb, dachte ich, dass Ruby ein sehr leicht verständliches und intuitives Design ist. Von nun an werde ich versuchen, die Methode mit einem stärkeren Bewusstsein für die Instanzklasse zu definieren.
Vielen Dank an alle, die es gelesen haben. Wenn Sie Vorschläge haben, zögern Sie bitte nicht, uns zu kontaktieren.
Recommended Posts