Zum Inhalt springen

Symbol (Informatik)

aus Wikipedia, der freien Enzyklopädie

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: <syntaxhighlight lang="scheme"> (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 </syntaxhighlight>

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

<ref group="Anmerkung" name="JS">In JavaScript gibt es 'Symbol' als eigenen Datentyp ab Version 2.0; Quelle: {{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:Herbert Braun|Herbert Braun: }}{{#if:|{{#if:JavaScript wird erwachsen|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=JavaScript wird erwachsen}}]{{#if:| ({{{format}}})}}{{#if:Die Neuerungen in ECMAScript 6| Die Neuerungen in ECMAScript 6{{#invoke:Vorlage:Internetquelle|Endpunkt|titel=Die Neuerungen in ECMAScript 6}}}}}}|{{#if:http://heise.de/-2500648%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=JavaScript wird erwachsen}}}}|[{{#invoke:URLutil|getNormalized|1=http://heise.de/-2500648}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=JavaScript wird erwachsen}}}}]}}{{#if:| ({{{format}}}{{#if:Die Neuerungen in ECMAScript 6C'tHeise Zeitschriften Verlag GmbH & Co KG2014-12-23168ff{{#if: 2015-01-05 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:de|de||{{#if:|1}}}}| ; 
              | )}}}}}}{{#if:Die Neuerungen in ECMAScript 6| Die Neuerungen in ECMAScript 6{{#invoke:Vorlage:Internetquelle|Endpunkt|titel=Die Neuerungen in ECMAScript 6}}}}}}}}{{#if:http://heise.de/-2500648%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://heise.de/-2500648}}%7C%7C}}}}{{#if:JavaScript wird erwachsen|{{#if:{{#invoke:WLink|isValidLinktext|1=JavaScript wird erwachsen|lines=0}}||}}}}{{#if: C't| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=C't}}}}{{#if: Heise Zeitschriften Verlag GmbH & Co KG| Heise Zeitschriften Verlag GmbH & Co KG{{#if: 2014-12-23168ff|,|{{#if: 2015-01-05 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: 2014-12-23| {{#if:{{#invoke:DateTime|format|2014-12-23|noerror=1}}
            |{{#invoke:DateTime|format|2014-12-23|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2014-12-23|class=Zitationswartung}} }}{{#if: 168ff|,|{{#if: 2015-01-05 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: 168ff| S. 168ff{{#if: |,|{{#if: 2015-01-05 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:168ff2014-12-23Heise Zeitschriften Verlag GmbH & Co KG|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:2268072||(?)}}}}}}{{#if: 2015-01-05|;}}}}{{#if: 2015-01-05| {{#if:168ff2014-12-23Heise Zeitschriften Verlag GmbH & Co KG{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2015-01-05 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2015-01-05|class=Zitationswartung}} }} {{#invoke:DateTime|format|2015-01-05|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:|1}}}}|{{#if:Die Neuerungen in ECMAScript 6C'tHeise Zeitschriften Verlag GmbH & Co KG2014-12-23168ff{{#if: 2015-01-05 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:de|de|de}}|de||
          {{#invoke:Multilingual|format|{{{sprache}}}|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:de|de|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2014-12-23168ff{{#if: 2015-01-05 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: http://heise.de/-2500648
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://heise.de/-2500648
      | {{#if:{{#invoke:URLutil|isWebURL|http://heise.de/-2500648}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://heise.de/-2500648 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://heise.de/-2500648
       | {{#if:{{#invoke:URLutil|isWebURL|http://heise.de/-2500648}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://heise.de/-2500648 }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: http://heise.de/-2500648
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://heise.de/-2500648
      | {{#if:{{#invoke:URLutil|isWebURL|http://heise.de/-2500648}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://heise.de/-2500648 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://heise.de/-2500648
       | {{#if:{{#invoke:URLutil|isWebURL|http://heise.de/-2500648}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://heise.de/-2500648 }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref> Symbole sollen in JavaScript als Schlüsselwerte für Map- und Object-Elemente verwendet werden. Ein Symbol ist immer einmalig, d. h. <syntaxhighlight lang="javascript"> let a = Symbol('x'); let b = Symbol('x'); </syntaxhighlight>

a ist ungleich b. Dies kann explizit geändert werden, indem

<syntaxhighlight lang="javascript"> let a = Symbol.for('x'); let b = Symbol.for('x'); </syntaxhighlight>

verwendet wird; nun gilt a === b.

C-Präprozessor

Auch der C-Präprozessor kennt Symbole: <syntaxhighlight lang="c"> // Ein Symbol anlegen:

  1. define mySymbol

// Wenn das Symbol gesetzt ist, dann ...

  1. ifdef mySymbol
 // ...
  1. endif

</syntaxhighlight>

Siehe auch

Anmerkungen und Einzelnachweise

<references group="Anmerkung" /> <references />