Konstante (Programmierung)


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

Eine Konstante (von lateinisch constans ‚feststehend‘) in einem Computerprogramm ist ein Behälter für eine Größe, die 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.

Arten von Konstanten

Es wird zwischen verschiedenen Arten von Konstanten unterschieden.

  • Literale Konstanten
    <syntaxhighlight lang="fsharp">

"Hello World!" </syntaxhighlight>

  • Konstanten, welche zur Kompilierzeit festgelegt werden. Der Compiler ersetzt jedes Auftreten der Konstante durch den jeweiligen Wert.
    <syntaxhighlight lang="csharp">

const string hello = "Hello World!"; </syntaxhighlight>

  • Konstanten, welche zur Kompilierzeit festgelegt werden. Der Wert wird jedoch erst zur Laufzeit ausgelesen.
    <syntaxhighlight lang="csharp">

readonly string hello = "Hello World!"; </syntaxhighlight>

  • Konstanten, welche zur Laufzeit festgelegt werden.
    <syntaxhighlight lang="fsharp">

let hello = "Hello World!" </syntaxhighlight>

  • Meta-Konstanten, welche das Verhalten des Präprozessors steuern, jedoch kein Teil des Programms darstellen.
    <syntaxhighlight lang="csharp">
  1. define DEBUG

</syntaxhighlight>

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:

<syntaxhighlight lang="csharp"> public MyObject(string name) {

  public string Name { get; } = name;

} </syntaxhighlight>

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

<syntaxhighlight lang="csharp"> public Func<string> Create(string name) {

  return () => name;

} </syntaxhighlight>