Symbol (Informatik)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

In manchen Programmiersprachen existiert ein eigener Datentyp Symbol, der meist die Bedeutung eines Flags 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, 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-Objekt ein Wert zugewiesen werden; dann wird es (gewissermaßen) zu einer Konstante, Variablen, zu einem Objekt oder einer Funktion.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Datentyp (Scheme)[Bearbeiten | Quelltext 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 (cdar l_colour))
-> green

JavaScript[Bearbeiten | Quelltext bearbeiten]

[Anmerkung 1]

Symbole sollen in JavaScript als Schlüsselwerte für Maps und Objects 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.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Anmerkungen und Einzelnachweise[Bearbeiten | Quelltext 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.