Symbol (Informatik)
In manchen Programmiersprachen existiert ein eigener
Datentyp Symbol, der meist die Bedeutung eines
Flags (eine Art
Identifikator) besitzt.
Jedoch kann nicht „dem Symbol true
oder false
“ zugewiesen werden, sondern „es ist vorhanden oder nicht
vorhanden“. Ein Symbol ist nahe verwandt mit dem
Identifier (englisch für Identifikator),
ist jedoch keine Variable,
da ein Symbol keinen Wert besitzen kann. Mitunter ist auch der Name des Symbols im Sinne einer
Zeichenkette von Bedeutung.
Die beiden Verwendungsarten „Flag“ und „Zeichenkette“ werden z.B. von Common Lisp und Scheme unterstützt. Symbole ähneln den Einträgen von Aufzählungstypen. In manchen Sprachen kann einem Symbol auch ein Wert zugewiesen werden.
Beispiele
Datentyp (Scheme)
In vielen funktionalen Sprachen wie z.B. Common Lisp oder Scheme ist „Symbol“ direkt ein Datentyp:
(define l_colour
(list 'red 'green 'blue 'cyan 'magenta 'yellow 'white 'black 'gray 'brown)
)
(equals? 'red (car l_colour))
-> #true
(symbol->string (car l_colour))
-> green
Hier sind red
, green
, blue
usw. Symbole, die in die Liste l_colour
aufgenommen werden.
Die letzte Anweisung nimmt das zweite Element der Liste und wandelt es in einen String; der Rückgabewert ist dann green
.
JavaScript
Symbole sollen in JavaScript als Schlüsselwerte für Map
- und Object
-Elemente verwendet werden. Ein Symbol ist
immer einmalig, d.h.
let a = Symbol('x');
let b = Symbol('x');
a
ist ungleichb
. Dies kann explizit geändert werden, indem
let a = Symbol.for('x');
let b = Symbol.for('x');
verwendet wird; nun gilt a === b
.
C-Präprozessor
Auch der C-Präprozessor kennt Symbole:
// Ein Symbol anlegen:
#define mySymbol
// Wenn das Symbol gesetzt ist, dann ...
#ifdef mySymbol
// ...
#endif
© biancahoegel.de
Datum der letzten Änderung: Jena, den: 16.02. 2023