[RUBY] Unterschied zwischen Variablen und Instanzvariablen

【Überblick】

1. Was sind Variablen </ b>?

2. Was sind Instanzvariablen? </ B>

3. Wann werden Variablen und Instanzvariablen verwendet? </ b>

4. Was ich hier gelernt habe </ b>

  1. Was sind Variablen?

Es ist ein Behälter zum Speichern von Buchstaben und Zahlen!

Variable


name = aiueo

Kann wie oben verwendet werden!

Da es sich um eine Variable handelt, lautet der Teil nach "name" (aiueo) Sie können setzen, was Sie wollen. Natürlich kann die Variable selbst mit einem beliebigen Namen "definiert" werden.

"Definition" bedeutet

name = aiueo

Der Zustand.

"Deklaration" entspricht allein "Name", indem eine Variable mit einem Variablennamen erstellt wird.
2. Was ist eine Instanzvariable?

Eine Variable, die die Attribute der Daten definiert. Mit anderen Worten, es ist jede Einstellung der in der Klasse definierten Instanzmethode.

Instanzvariable



class A
 def B
  @name = aiueo
 end
end

Die oben genannten sind Instanzvariablen. In der A-Klasse gibt es eine B-Methode Wenn die B-Methode angewendet wird, kann "aiueo" mit "@name" verwendet werden.

  1. Wann werden Variablen und Instanzvariablen verwendet?

Variablen </ b> können nur außerhalb der Methode verwendet werden. Sie können es nur innerhalb der Methode verwenden. (Wenn Sie jedoch eine Variable in einer Instanzmethode definieren, wird sie als lokale Variable bezeichnet, die nur in einer Instanzmethode verwendet werden kann.)

Instanzvariablen </ b> können in verschiedenen Instanzmethoden verwendet werden, solange sie sich in derselben Klasse befinden. Wenn Sie im MVC-Modell Daten vom Controller an die Ansicht übergeben, wird dies zu einer äußerst praktischen Variablen, die über die Wand übertragen werden kann!

Lokale Variablen (Variablen in Instanzmethoden) haben das Konzept des Gültigkeitsbereichs, sodass Sie nicht über Wände springen können.

  1. Was ich von hier gelernt habe

Ich habe eine lokale Variable auf dem Controller Ich hatte einen "No Method Error". Außerdem habe ich in jeder Methode, die die Ansicht empfängt, vergessen, "@" hinzuzufügen, und habe "NameError" erhalten.

Ersteres wurde wütend, als lokale Variablen vom Controller in die Ansicht gingen, wenn sie überhaupt nicht definiert wurden. (Weil es eine lokale Variable geworden ist)

Im letzteren Fall kann jede Methode nicht verwendet werden, da sie nicht als Array empfangen werden kann, weil "@" nicht hinzugefügt wird (weil jede ein Array empfängt) = NameError (jede kann nicht verwendet werden, weil der Name unterschiedlich ist). Ich denke, es wird als solches interpretiert.

Recommended Posts