Symbol (Informatik)

Dies ist die gesichtete Version, die am 21. Januar 2023 markiert wurde. Es existiert 1 ausstehende Änderung, die noch gesichtet werden muss.

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

Bearbeiten

Datentyp (Scheme)

Bearbeiten

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

Bearbeiten

[Anmerkung 1] 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 ungleich b. 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

Bearbeiten

Auch der C-Präprozessor kennt Symbole:

// Ein Symbol anlegen:
#define mySymbol
// Wenn das Symbol gesetzt ist, dann ...
#ifdef mySymbol
  // ...
#endif

Siehe auch

Bearbeiten

Anmerkungen und Einzelnachweise

Bearbeiten
  1. In JavaScript gibt es 'Symbol' als eigenen Datentyp ab Version 2.0; Quelle: Herbert Braun: JavaScript wird erwachsen. Die Neuerungen in ECMAScript 6. In: C't. Heise Zeitschriften Verlag GmbH & Co KG, 23. Dezember 2014, S. 168ff, abgerufen am 5. Januar 2015.