Arten von Variablen in Ruby

Arten von Variablen in Ruby

Es gibt verschiedene Arten von Variablen, und ich wusste nicht, wie ich sie richtig verwenden soll. Deshalb hinterlasse ich mir eine Notiz.

Inhaltsverzeichnis

  1. [Lokale Variable]
  2. [Instanzvariable]
  3. [Klassenvariable]
  4. [Globale Variablen]

Lokale Variablen

local.rb


def local()
  a = 3
end
p a

# =>Traceback (most recent call last):
local.rb:5:in `<main>': undefined local variable or method `a' for main:Object (NameError)

Eine von der lokalen Methode definierte Methode kann nicht von außerhalb der Methode aufgerufen werden.

Instanzvariable

instance.rb


class Instance
  def set_val(val)
    @val = val
  end

  def put_val
    p @val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.put_val


# =>
"aaa"
nil

Fügen Sie "aaa" mit der Methode set_val in @val der Instanz test1 ein. Danach wird in Beispiel test2 put_val aufgerufen, aber nil wird zurückgegeben. Daraus ist ersichtlich, dass der Wert für jede Instanz gehalten wird.

instance.rb


class Instance
  def set_val(val)
    @val = val
  end

  def put_val
    p @val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.set_val("bbb")
test2.put_val
# =>
"aaa"
"bbb"

Die set_val-Methode muss auch für die Instanz test2 verwendet werden.

Klassenvariable

class.rb


class Instance
  def set_val(val)
    @@val = val
  end

  def put_val
    p @@val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.put_val
# =>
"aaa"
"aaa"

Im Gegensatz zur vorherigen Instanzvariablen wird der Wert von allen Instanzen derselben Klasse gemeinsam genutzt.

class.rb


class Instance
  def set_val(val)
    @@val = val
  end

  def put_val
    p @@val
  end
end

test1 = Instance.new
test1.set_val("aaa")
test1.put_val

test2 = Instance.new
test2.set_val("bbb")
test2.put_val

test1.put_val

# => 
"aaa"
"bbb"
"bbb"

Globale Variablen

global.rb


class Global
  def set_val(val)
    $val = val
  end
end

test1 = Global.new
test1.set_val("aaa")

p $val

# => 
"aaa"

Recommended Posts

Arten von Variablen in Ruby
Ruby-Konstante variabel
Diagrammtyp Ruby
Schwer in Rubin! ??
Informationen zu in Java verwendeten Variablen (lokaler Variablentyp)
Typbestimmung in Java
Schneller Popcount in Ruby
ABC177 - E in Ruby lösen
Überprüfen Sie JWT-Token in Ruby
Schreiben Sie die Klassenvererbung in Ruby
Probieren Sie den Funktionstyp in Java aus! ①
Ganzzahlen, die in Ruby 2.4 zu Ganzzahlen zusammengefasst sind
Multiplikation innerhalb eines Ruby-Arrays
Über reguläre Ausdrücke in Ruby
NCk mod p in Ruby
Variable
Wie man in Ruby auf unbestimmte Zeit iteriert
Ruby on Rails-Variablen, konstante Zusammenfassung
Erzielen Sie eine dreistellig begrenzte Anzeige in Ruby
Ich habe versucht, Code wie eine Typdeklaration in Ruby zu schreiben
Codierung unter Windows + Ruby
Ruby on Rails Japanisch-Englisch kompatibler i18n
Implementieren Sie den gRPC-Client in Ruby
Schreiben Sie Schlüssel und Werte in Ruby
[Super Einführung] Über Symbole in Ruby
Hanachan in Ruby (zerstörungsfreie Array-Manipulation)
Was ist eine Referenztypvariable?
OpenSL-Versionsinformationen in Ruby OPENSSL_VERSION
Ruby-Methoden, die häufig in Rails verwendet werden
Segfo Ruby in 2 Zeilen
[Java] Zeigt die Bitfolge an, die in der Bytetypvariablen auf der Konsole gespeichert ist
Ich habe ein Kalenderproblem mit Ruby versucht
Implementierung von Poker nach und nach in Ruby Teil 2
In Bezug auf den Vergleich der Zeichenfolgentypäquivalenz in Java
Erstellen Sie Binärdaten variabler Länge in Java
Implementierung von Poker nach und nach in Ruby Teil 1
[Leicht verständliche Erklärung! ] Konvertierung des Referenztyptyps in Java
Verzeichnisinformationen von DEFAULT_CERT_FILE in Mac Ruby 2.0.0