MINT lernen

Statische und dynamische Typen

Darf aus der Zahl 15 plötzlich der Text „fünfzehn“ werden? Das hängt von der Sprache ab.

1

Typen, die vorher feststehen

  • Datentyp:legt fest, welche Werte eine Variable haben kann und welche Operationen erlaubt sind: int, double, String, boolean.
  • Typfehler:eine Operation passt nicht zum Typ, z. B. Text minus Zahl.
  • Statisch typisiert:der Typ jeder Variable steht fest, bevor das Programm läuft; der Compiler prüft alle Zuweisungen.
  • Deklaration:meist schreibt man den Typ dazu: int alter = 15; — Java, C, C#.
  • Typinferenz:Go, Rust und C# können den Typ selbst ableiten: alter := 15, let alter = 15;, var alter = 15; — er steht trotzdem fest.
Java · statisch
int alter = 15;
alter = "fünfzehn";  // Compiler: Fehler
Python · dynamisch
alter = 15
alter = "fünfzehn"   # erlaubt
2

Typen, die erst beim Laufen zählen

  • Dynamisch typisiert:der Typ gehört zum Wert, nicht zur Variable; eine Variable darf später einen Wert anderen Typs bekommen.
  • Prüfung:Typfehler zeigen sich erst zur Laufzeit — wenn die Zeile tatsächlich ausgeführt wird.
  • Beispiele:Python, JavaScript, PHP.
  • Umwandlung:manche Sprachen wandeln still um: in JavaScript ist "5" * 2 gleich 10, in PHP ist "5" + 3 gleich 8; Python meldet bei "5" + 3 einen TypeError.
  • Abwägung:statisch: Fehler früh, schnell, gute Hilfe im Editor — dynamisch: kürzer, flexibel, schnell ausprobiert.

Lies das Programm und tippe: Findet der Compiler einen Fehler, stürzt das Programm beim Laufen ab — oder läuft es durch? Dann drücke „Ausführen“ und vergleiche. Mit ◀ ▶ wechselst du das Beispiel.

Wann knallt es?

Dein Tipp

Halte fest: In statisch typisierten Sprachen fällt ein Typfehler schon beim Übersetzen auf — auch in Zeilen, die nie laufen. In dynamisch typisierten Sprachen erst, wenn die Zeile ausgeführt wird.

Merke

Typisierung: Statisch: Der Typ einer Variable steht vor dem Lauf fest, der Compiler prüft ihn. Dynamisch: Der Typ gehört zum Wert und wird erst zur Laufzeit geprüft.

3

Allgemeine Hinweise

+ hat viele Bedeutungen

Zwischen Zahlen addiert +, zwischen Texten verkettet es. Prüfe bei gemischten Werten immer, was deine Sprache daraus macht.

Kein Fehler heißt nicht fehlerfrei

In Python oder JavaScript kann ein Typfehler in einem selten erreichten Zweig lange unbemerkt bleiben. Teste jeden Zweig mindestens einmal.

Eingaben sind Text

input() in Python liefert immer einen String. Wandle mit int(...) oder float(...) um, bevor du rechnest.

Videos