Eine Konstante (von lateinisch constans ‚feststehend‘) in einem Computerprogramm ist ein Behälter für einen Wert, der nach der Zuweisung nicht verändert werden kann. Das Gegenstück dazu ist eine Variable.

Konstanten haben im Quelltext meist semantische Bezeichner, was den Umgang vereinfacht und eine Verwechslung mit anderen Konstanten verhindern soll. Der Begriff wird allerdings auch für Literale verwendet (literale Konstante), die keinen semantischen Bezeichner haben. Daher ist es eindeutiger, bei frei definierbaren Konstanten von symbolischen Konstanten zu sprechen.

Vor Laufzeit bereits initialisierte Konstanten werden in diversen Hochsprachen traditionell GROSS (d. h. nur mit Großbuchstaben) bezeichnet.

Arten von Konstanten

Es wird zwischen verschiedenen Arten von Konstanten unterschieden.

  • Literale Konstanten
    "Hello World!"
    
  • Konstanten, welche zur Kompilierzeit festgelegt werden. Der Compiler ersetzt jedes Auftreten der Konstante durch den jeweiligen Wert.
    const string HELLO = "Hello World!";
    
  • Konstanten, welche zur Kompilierzeit festgelegt werden. Der Wert wird jedoch erst zur Laufzeit ausgelesen.
    readonly string hello = "Hello World!";
    
  • Konstanten, welche zur Laufzeit festgelegt werden.
    let hello = "Hello World!"
    
  • Meta-Konstanten, welche das Verhalten des Präprozessors steuern, jedoch kein Teil des Programms darstellen.
    #define DEBUG
    

Laufzeit-Konstanten durch Kapselung

In Objektorientierten Programmiersprachen besteht die Möglichkeit eine Laufzeit-Konstante nachzubilden, indem eine Variable in einem Objekt gekapselt wird und dabei ausschließlich Lesemethoden zur Verfügung gestellt werden:

public MyObject(string NAME)
{
   public string NAME { get; } = NAME;
}

In Funktionalen Programmiersprachen kann die Variable in einer Closure gekapselt werden:

public Func<string> Create(string NAME)
{
   return () => NAME;
}
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.