[RUBY] Über attr_accessor

Was ist eine Instanzvariable?

In derselben Instanz gemeinsam genutzte Variablen

python


class Food
  def initialize(name)
    #Speichern Sie den beim Erstellen der Instanz übergebenen Namen in der Instanzvariablen
   @name = name
  end

  def eat
  "I will eat an #{@name}"
  end
end
food = Food.new('apple')
food.hello #=> "I will eat an apple"

Instanzvariablen können nicht von außerhalb der Klasse referenziert werden!

python


class Food
  def initialize(name)
   @name = name
  end

  #@Methode zum Referenzieren des Namens von außen
  def name
  @name
  end
end
food = Food.new('apple')
#Über die Namensmethode@Holen Sie sich den Inhalt des Namens
food.name #=> "apple"

Definieren Sie eine Methode zum Ändern des Inhalts von Instanzvariablen, auch wenn Sie diese von außen ändern möchten

python


class Food
  def initialize(name)
   @name = name
  end

  #@Methode zum Referenzieren des Namens von außen
  def name
  @name
  end

 #@Methode zum Ändern des Namens von außen
  def name=(value)
    @name = value
  end
end
food = Food.new('apple')
#Es sieht so aus, als würden Sie es einer Variablen zuweisen, aber es ist eigentlich ein Name=Sie rufen eine Methode auf.
food.name = 'banana'
#Über die Namensmethode@Holen Sie sich den Inhalt des Namens
food.name #=> "banana"

Eine Methode, die den Wert einer Instanzvariablen liest und schreibt, wird als "Zugriffsmethode" bezeichnet. Das Schreiben dieser Methoden nacheinander ist mühsam. Hier kommt die "attr_accessor-Methode" ins Spiel.

attr_accessor-Methode

python


class Food
  #@Methoden zum Lesen und Schreiben von Namen werden automatisch definiert
  attr_accessor :name

  def initialize(name)
   @name = name
  end

  #@Methode zum Referenzieren des Namens von außen
  #def name
  #@name
  #end

 #@Methode zum Ändern des Namens von außen
  #def name=(value)
    #@name = value
  #end
end
food = Food.new('apple')
#@Namen ändern
food.name = 'banana'
#@Siehe Name
food.name #=> "banana"

"Attr_reader", wenn Sie den Inhalt der Instanzvariablen schreibgeschützt machen möchten Wenn Sie nur schreiben möchten, "attr_writer"

Referenz Eine Einführung in Ruby für diejenigen, die Profis werden wollen

Recommended Posts

Über attr_accessor
Über =
Über method.invoke
Über Kotlin
Über Hinemos
Über die Vererbung
Über Docker
Über Schienen 6
Über den Frühling ③
Über Aufzählung
Über Polymorphismus
Über Optional
Über Hash
Über JitPack
Darüber ()
Über die Kapselung
Über JAVA_HOME
Über statische
Über Ausnahmen
Über den Umfang
[Maven] Über Maven
Informationen zur Ausnahmebehandlung
Über die Java-Schnittstelle
[Java] Informationen zu Java 12-Funktionen
Informationen zum Rails-Routing
Über zyklische Komplexität
Informationen zur Ausnahmebehandlung
Informationen zu AsyncTask-Generika
Über Ruby-Symbole
Informationen zur Array-Multiplikation
[Java] Über Arrays
Informationen zur Klassenvererbung.
Über Spring AOP
Über Ruby Hash
Über singuläre Methoden
Informationen zum Erstellen von Tools
Kauen Sie über API
[Über Double Hash]
Etwas über Java
Wo ist mit Java?
Über die Methode von HttpServlet ()
Informationen zu Java-Funktionen
Informationen zu SIGNING_REGION: NoSuchFieldError
Über die Methode