Ich denke, das liegt daran, dass es mit den erforderlichen Kenntnissen und Überprüfungen ausgegeben wird. Ich habe nicht wirklich über dieses Kapitel nachgedacht (.´ ・ ω ・). Das Video und der Text waren sehr leicht zu verstehen.
Kapitel 4 ist Ruby mit Rails-Geschmack. Dies ist das erste Mal für eine so leicht verständliche Objektorientierung. Ich habe auch von Python von Progate und Ruby von TECH :: CAMP gelernt. .. .. (゜ - ゜) Hmm, ich habe mich gefragt, ob objektorientiert lecker ist.
Gut erklärt ... Alle Dinge sind Objekte. Ein Objekt für Menschen, ein Objekt für Autos Es gibt eine Person namens John. John gehört zu einer Person. Menschen haben Faktoren wie Beruf, Geschlecht und Alter. .. .. Es fühlt sich an, als ob der Code gemäß diesem Inhalt geschrieben wurde (.´ ・ ω ・)?
"String"es gibt.
Wenn objektorientiert geschrieben,
"12345".length #Mit dieser Methode können Sie Zeichen zählen.
"12345".to_i #Mit einer Methode können Sie eine Zeichenfolge in eine Ganzzahl konvertieren.
.Längenmethode.to_Was kann ich verwenden, obwohl die i-Methode nicht definiert ist??
⇒ Weil die Antwort objektorientiert geschrieben ist.
noch,(.. ´ ・ ω ・)Hmm?ich fühle mich
Tatsächlich"String"と書けばStringと認識されていますが、
String.new("String")Ist eine Abkürzung für den Code.
String(String)Klassenobjekt"String"Es bedeutet zu machen.
Zeichenkette im Voraus(String)In der Klasse werden verschiedene Methoden bereitgestellt.
String.new("")Da das in erstellte Objekt ein Zeichenfolgenobjekt ist, können die vordefinierten Methoden verwendet werden.
In der String-Klasse.to_Ich Methode ist vorbereitet, so
Auch die neu generierte Zeichenkette.to_Dies bedeutet, dass Sie verschiedene Methoden wie i verwenden können.
Der größte Vorteil der Objektorientierung ist
Indem Sie immer eine Zeichenfolge als Zeichenfolgenobjekt generieren.to_Es ist möglich, Methoden wie i zu teilen.('ω')Nein
Wenn Sie der Zeichenfolgenklasse eine neue Methode hinzufügen, kann diese mit allen Zeichenfolgenobjekten verwendet werden.
Als ich bei Progate gelernt habe(.. ´ ・ ω ・)Hmm?Es war, aber jetzt finde ich es bequem(´-ω-`)
"String"Gehört zur String-Klasse.
Um zu sehen, wo es hingehört.Sie können die Klassenmethode verwenden.
s = "String"
s.class
⇒ String
Tatsächlich gehört die String-Klasse auch zur Object-Klasse.
>> s.class.superclass # superclass :Untersuchen Sie die übergeordnete Klasse
=> Object
Die Object-Klasse gehört auch zu einer höheren Klasse.
>> s.class.superclass.superclass
=> BasicObject
Gehört BasicObject zu einer höheren Klasse? Die Antwort war nein. Es bedeutet, dass Null nicht existiert.
>> s.class.superclass.superclass.superclass
=> nil
Der Grund, warum ich das tue, ist, die Funktion zu übernehmen.('ω')Nein
Unter der Object-Klasse String(String)・ Ganzzahl(ganze Zahl)・ Array(Array)Es gibt Klassen und so weiter.
Arrays, Ganzzahlen, Strings,.Sie können die Längenmethode verwenden, richtig?
Es ist schwer, jeden der drei hinzuzufügen.
Wenn Sie es also zu Object hinzufügen und in niedrigeren Klassen verfügbar machen, können Sie Zeit und Mühe sparen.
Das Erben einer in einer höheren Klasse definierten Methode auf diese Weise an eine niedrigere Methode wird als "Vererbung" bezeichnet.('ω')Nein
#class <Name der Klasse>Sie können mit eine neue Klasse definieren.
>> class Word < String # <String kann die String-Klasse erben('ω')Nein
>> #Gibt true zurück, wenn die Zeichenfolge kreisförmig ist
>> def palindrome? #Sie können eine neue Methode mit def definieren.
>> self == self.reverse #self repräsentiert die Zeichenfolge selbst
>> end
>> end
=> :palindrome?
$ rails console
#Addition von ganzen Zahlen
>> 17 + 42
=> 59
#String-Verkettung
>> "foo" + "bar" #String-Verkettung
=> "foobar"
#Variablenzuordnung
>> first_name = "Michael"
=> "Michael"
#Ausdruckserweiterung von Zeichenketten Dies ist praktisch('ω')Nein, ich benutze es auch in Rails.
>> "#{first_name} Hartl"
=> "Michael Hartl"
#Ausdruckserweiterung('ω')Nein
>> first_name = "Michael"
=> "Michael"
>> last_name = "Hartl"
=> "Hartl"
>> first_name + " " + last_name #Kombinieren Sie mit einem Leerzeichen zwischen dem Nachnamen und dem Vornamen
=> "Michael Hartl"
>> "#{first_name} #{last_name}" #Join mit Ausdruckserweiterung(Genau das gleiche wie oben)
=> "Michael Hartl"
#String-Ausgabe(puts)
>> puts "foo" #Geben Sie eine Zeichenfolge aus
foo
=> nil #Der Rückgabewert ist null "nichts"
#String-Ausgabe(print)
>> print "foo" #Bildschirmausgabe der Zeichenkette(Gleich wie Puts, aber keine Pausen)
foo=> nil
>> print "foo\n" # \n ist ein Zeilenumbruch. Dies erzeugt die gleiche Ausgabe wie Puts.
foo
=> nil
#''Mit einfachem Zitat""Doppeltes Zitat
>> '#{first_name} #{last_name}' # ''Der Ausdruck kann nicht erweitert werden.
=> "/#{first_name} #{last_name}"
>> "#{first_name} #{last_name}" # ""Kann in Ausdrücke erweitert werden.
=> "Michael Hartl"
# empty?Methode
>> "foobar".empty?
=> false
>> "".empty?
=> true
#Bedingte Verzweigung(if)・.include?("String")・.nil?Methode
>> if s.nil?
>> "The variable is nil"
>> elsif s.empty?
>> "The string is empty"
>> elsif s.include?("foo")
>> "The string includes 'foo'"
>> end
=> "The string includes 'foo'"
#Van!Van!Erzwungener logischer Wert(True/False)Ausgabe mit
>> !!nil #Ruby-Objekt ist nur für Null falsch
=> false
>> !!0 #Alle anderen Ruby-Objekte sind wahr
=> true
Ist das ungefähr die Hälfte des Inhalts? Es gibt ziemlich viel Volumen. Wichtige Inhalte wie Arrays und Hashes folgen ... Ich frage mich, ob es urheberrechtlich geschützt ist, wenn ich alles schreibe. Wenn ich also über Symbole schreibe, ist es vorbei ('ω')
#Dies ist ein beschriftetes Array namens Hash.
user1 = { "name"=>"test_user", "email" => "[email protected]" }
user2 = { "name"=>"test_user", "email" => "[email protected]" }
user1 == user2
=> false
Warum ist es falsch, obwohl der Inhalt der gleiche ist?('ω')Nein
Eigentlich Objekt_Das Ding namens id ist anders, also überprüfen Sie bitte, ob es anders ist.
user1.object_id
user2.object_id
Dieses Objekt_Die ID entspricht dem Ort, an dem die Daten gespeichert werden.
Versuchen Sie es auch mit einer Schnur. Objekt jedes Mal, wenn Sie laufen_Die ID wird sich ändern.
"name".object_id
"name".object_id
"name".object_id
Als nächstes kommt die Nummer. Wie wäre es mit den Zahlen? Die Zahlen sind immer das gleiche Objekt_Es wird id.
1.object_id
1.object_id
1.object_id
Endlich ... ein Symbol. Symbole sind sowohl Objekte als auch Zahlen_Die ID ändert sich nicht.
:name #:+Eine Zeichenkette heißt Symbol, aber Objekt_Stellen Sie sich das als etwas vor, das mit id gekennzeichnet ist.
Der Grund dafür ist, dass es schneller ist als die Verwendung einer Zeichenfolge.('ω')Nein
Daher wird der Markenname des Hash dem Symbol gegenüber der Zeichenfolge vorgezogen.
◎ user = { :name=> "test_user" , :email => "[email protected]" }
△ user = { "name"=>"test_user", "email" => "[email protected]" }
Es kann noch einfacher geschrieben werden.
user = { :name=> "test_user" , :email => "[email protected]" }
user = { name: "test_user", email: "[email protected]" }
Wenn Sie die Methode selbst definieren, schreiben Sie sie in eine Datei namens helper ('ω').
app/helpers/application_helper.rb
module ApplicationHelper
#Gibt den vollständigen Titel pro Seite zurück.
def full_title(page_title = '')
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
page_title + " | " + base_title
end
end
end
Kapitel 4 ist sehr reich und interessant. Sie müssen Ruby kennen, um verschiedene Methoden selbst definieren zu können. Es gibt verschiedene Methoden, aber ich erinnere mich nur an wenige. Nachdem Sie Rails gelernt haben, müssen Sie Ruby richtig lernen ... Hmm, die Spitze ist lang und lang (^ ω ^) ...
Recommended Posts