initialize Wenn ein Objekt mit der neuen Methode erstellt wird, wird die Initialisierungsmethode dieses Objekts ausgeführt.
class User
attr_reader :name, :address, :email
def initialize(name, address, email)
@name = name
@address = address
@email = email
end
end
private Methoden, die nach der Zeile private definiert sind, sind private Methoden und können von innerhalb des Objekts, jedoch nicht von außen verwendet werden.
class Person
def initialize(money)
@money = money
end
def billionaire?
money >= 10000000
end
private
def money
@money
end
end
Wird verwendet, wenn Sie einige Funktionen einer vorhandenen Klasse ändern möchten, nachdem Sie im Grunde alle Funktionen geerbt haben Das Überschreiben der Verarbeitung der Methode der übergeordneten Klasse mit der von der untergeordneten Klasse geschriebenen Verarbeitung wird als ** "Überschreiben" ** bezeichnet.
class PricedObject #Elternklasse, Superklasse
def total_price
price * Tax.rate
end
def price
raise NotImplementedError
end
end
class product < PricedObject #Kinderklasse, Unterklasse
attr_accessor :price
end
class OrderedItem < PricedObject #Kinderklasse, Unterklasse
attr_accessor :unit_price, :volume
def price
unit_price * volume
end
end
Die Grundeinheit von Ruby ist ein Objekt, und es gibt eine Klasse als Konstruktionszeichnung des Objekts. Darüber hinaus hat Ruby das Konzept des "Moduls" als Sammlung von Konstruktionszeichnungen einer Reihe von Verhaltensweisen an einem Ort.
Der Unterschied zwischen Modulen und Klassen besteht darin, dass Module keine Objekte erstellen können. Module stellen eine Reihe von Verhaltensweisen dar, die mit ** "include" ** zu einer Klasse zusammengefasst werden können.
module Talking
def talk
"Bow-wow"
end
module Walking
def walk
"Teke Teke"
end
end
class Dog
include Talking
include Walking
end
mugi = Dog.new
mugi.talk
mugi.walk
#Wie schreibe ich mit Vererbung
class PricedObject
def total_price
price * Tax.rate
end
def price
raise NotImplementedError
end
end
class product < PricedObject
attr_accessor :price
end
class OrderedItem < PricedObject
attr_accessor :unit_price, :volume
def price
unit_price * volume
end
end
#Wie man mit Modulen schreibt
module PricedHolder
def total_price
price * Tax.rate
end
end
class product
include PriceHolder
attr_accessor :price
end
class OrderedItem
include PriceHolder
attr_accessor :unit_price, :volume
def price
unit_price * volume
end
end
begin
#Code, der eine Ausnahme auslösen kann
rescue
#Code, der der Ausnahme entspricht
ensure
#Code, den Sie immer mit oder ohne Ausnahme ausführen möchten
end
Syntax zur Eingabe eines Werts, wenn die Variable Null ist
#Beispiel 1
a = nil
a ||= 3
puts a
# ==> 3
#Beispiel 2
def people
@people ||= []
end
# ==>@Selbst wenn people nil ist, wird beim Aufruf dieser Methode ein leeres Array zugewiesen und zurückgegeben.
Das Aufrufen einer Methode mit &. Verursacht keinen Fehler, auch wenn der Empfänger Null ist.
#Bei Verwendung von if
name = if object
object.name
else
nil
end
#Bei Verwendung des Bocchi-Operators
name = object&.name
Wenn alle Elemente des Arrays Zeichenfolgen sind, können Sie das Array mit ** "% w" ** beschreiben
array1 = ['apple', 'banana', 'orange']
#==>["apple", "banana", "orange"]
#↓ Gleich
array1 = %w(apple banana orange)
#==>["apple", "banana", "orange"]
Ein Array, in dem alle Elemente Symbole sind, kann mit ** "% i" ** beschrieben werden
array1 = [:apple, :banana, :orange]
#==>[:apple, :banana, :orange]
#↓ Gleich
array1 = %i(apple banana orange)
#==>[:apple, :banana, :orange]
[Referenz | Ruby on Rails 5 - Kurzanleitung, die vor Ort verwendet werden kann](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD % BF% E3% 81% 88% E3% 82% 8B-Ruby-Rails-5% E9% 80% 9F% E7% BF% 92% E5% AE% 9F% E8% B7% B5% E3% 82% AC % E3% 82% A4% E3% 83% 89-% E5% A4% A7% E5% A0% B4% E5% AF% A7% E5% AD% 90 / dp / 4839962227)
Recommended Posts