Neu in ActionScript 3: Typsicherheit zur Laufzeit

Halbwegs typsicher war ActionScript 2 ja auch schon, aber halt nur halbwegs… aber keine Sorge, das ist mit ActionScript 3 vorbei. Genauer gesagt: Während es in ActionScript 2 noch möglich war zur Laufzeit einer Variable einen Wert von einem inkompatiblen Datentyp zuzuweisen ist dies nun nicht mehr möglich. Schauen wir uns einfach mal ein Beispiel an:Wir gehen einfach mal von einer Funktion aus die einen Parameter von einem unbestimmten Typen bekommt (nicht schön, aber zum testen wirds gehen) und weisen den Parameter einer als Date gecasteten Variablen zu:

function setServerDate( data ): Void
{
       var date : Date = data;
       trace( date ); //I'm a string, not a date-object
       trace( date.getDate() ); //undefined
}
setServerDate( "I'm a string, not a date-object" );

Dieses Beispiel würde in ActionScript 2 ohne Kompiler- oder Laufzeitfehler funktionieren. Problematisch daran ist das man beim zweiten trace garnicht mitbekommen würde, dass die Variable einen falschen Datentyp hat (u.a. auch begründet durch die dynamischen Klassen bei ActionScript 2)… bei umfangreichen Projekten wird das Debugging wg. solchen Sachen dann zur Hölle.

In ActionScript 3 ist dies nun konsistenter gelöst… bauen wir dafür mal die alte Funktion in ActionScript 3 nach:

function setServerDate( data:* ): void
{
       var date : Date = data; // Type-Error
       trace( date );
       trace( date.getDate() );
}
setServerDate( "I'm a string, not a date-object" );

Würden wir das Ganze jetzt ausführen würde sofort in Zeile 3 ein Type-Error geworfen und die Ausführung beendet/angehalten. Das bedeutet für uns, dass wir durch die Verwendung von ActionScript 3 wesentlich stabilere und sicherere Programme entwickeln können.

Andere Beiträge der Reihe:


Danke für das Lesen dieses Eintrags. Du kannst nun einen Kommentar abgeben (0) oder einen Trackback hinterlassen.



Kommentar hinterlassen