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>
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.
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.
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.
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