2010-04-23 6 views
6

Im folgenden Code:In ActionScript, gibt es eine Möglichkeit zu überprüfen, ob ein Eingabeargument ein gültiger Vektor eines beliebigen Typs ist?

var a:Vector.<int> ... 
var b:Vector.<String> ... 
var c:Vector.<uint> ... 
var c:Vector.<MyOwnClass> ... 

function verifyArrayLike(arr:*):Boolean 
{ 
    return (arr is Array || arr is Vector) 
} 

verifyArrayLike(a); 
verifyArrayLike(b); 
... 

Was ich suche ist so etwas wie _var is Vector.<*>

Aber Vector.<*> ist kein gültiger Ausdruck, auch Vector. kann nicht auf der rechten Seite der Bediener platziert werden.

Gibt es eine Möglichkeit zu überprüfen, ob ein Eingabeargument ein gültiger Vektor ist?

Antwort

4

Hier ist eine Methode, die funktionieren sollte. Ich bin zuversichtlich, dass es (sicherlich?) Ein besserer Weg da draußen sein sollte, der keine Zeichenketten verwendet, aber diese Methode sollte Sie überbrücken.

+0

sehr schöner Code! –

0

Dies scheint auch zu funktionieren, obwohl ich sehr unglücklich darüber bin, nicht in der Lage zu sein (Kandidat ist Vector) zuverlässig.

private function isVector(candidate : *) : Boolean 
{ 
    var result : Boolean; 
    try 
    { 
     Vector.<*>(candidate).length; 
     result = true; 
    } 
    catch (error : Error) 
    { 
     result = false; 
    } 

    return result; 
} 
Verwandte Themen