it-swarm-eu.dev

Was ist ein Symbol in Ruby?

Ich bin völlig neu in der Ruby Welt) und ein bisschen verwirrt mit dem Konzept der Symbole. Was ist der Unterschied zwischen Symbolen und Variablen? Warum nicht einfach Variablen verwenden?

Vielen Dank.

49
wassimans

Variablen und Symbole sind verschiedene Dinge. Eine Variable zeigt auf verschiedene Arten von Daten. In Ruby ähnelt ein Symbol eher einer Zeichenfolge als einer Variablen.

In Ruby ist eine Zeichenfolge veränderbar, während ein Symbol unveränderlich ist. Das bedeutet, dass nur eine Kopie eines Symbols erstellt werden muss. Also, wenn Sie haben

x = :my_str
y = :my_str

:my_str wird nur einmal erstellt, und x und y zeigen auf denselben Speicherbereich. Auf der anderen Seite, wenn Sie haben

x = "my_str"
y = "my_str"

eine Zeichenfolge mit my_str wird erstellt zweimal und x und y verweisen auf verschiedene Instanzen.

Infolgedessen werden Symbole häufig als Äquivalent zu Aufzählungen in Ruby sowie als Schlüssel zu einem Wörterbuch (Hash) verwendet.

74
mipadi

Symbol in Ruby ist im Grunde dasselbe wie Symbol in der realen Welt. Es wird verwendet, um etwas darzustellen oder zu benennen.

Symbole werden sehr häufig verwendet, um beispielsweise einen Zustand darzustellen

order.status = :canceled
order.status = :confirmed

Sie können das Symbol auch als sofortige Aufzählung betrachten. Sie müssen kein Symbol definieren, sondern verwenden es einfach. Dieser Artikel erklärt es sehr ausführlich.

18
Jakub Arnold

Normalerweise werden Variablen mit Zeichenfolgen verwechselt, aber ich kann verstehen, dass Sie es wie eine Variable denken. Es ist verständlich. Denk darüber so:

Der Status eines Spielers in einem Spiel wird durch eine Zahl dargestellt. 1 bedeutet lebendig, 2 bedeutet unsicher, 3 bedeutet tot. Dies kann leicht durch Symbole ersetzt werden. Die Symbole könnten :alive:unsure Und :dead Sein. So überprüfen Sie, ob ein Spieler lebt, anstatt Folgendes zu tun:

if player_status == 1

Sie könnten dies tun:

if player_status == :alive

1
sirsnow