Was ist die Flex (Actionscript 3) Syntax für eine Typ-Funktionen Funktion bewertet?

StackOverflow https://stackoverflow.com/questions/74649

  •  09-06-2019
  •  | 
  •  

Frage

Was ist die Syntax einen Typen für meinen vergleichen Funktionsgenerator im Code wie folgt aus?

zu erklären,
var colName:String = ""; // actually assigned in a loop
gc.sortCompareFunction = function() : ??WHAT_GOES_HERE??
{
   var tmp:String = colName;
   return function(a:Object,b:Object):int { return compareGeneral(a,b,tmp); };
}();
War es hilfreich?

Lösung

Ist das nicht "Funktion" ein Datentyp?

Andere Tipps

Um zu verstehen, was der Datentyp ist, müssen wir wissen, was das angestrebte Ergebnis der Rückkehr ist. Ich brauche den Codeblock für compareGeneral zu sehen, und ich glaube immer noch nicht, das wird helfen. Sie haben zwei kehrt die gleiche Funktion „gc.sortCompareFunction“ withing, ich glaube, dass dies falsch ist, als Rückkehr Wert bekommt und wirkt dann als Befehl break den Rest der etwas withing demselben Funktionsblock ignoriert wird, was bedeutet. Das Problem ist, dass ich weiß nicht, welche Rendite die beabsichtigte Rückkehr ist, und ich weiß nicht, dass Flash entweder weiß. Sie können * als Datentyp verwenden, aber dies nur wirklich sollte in bestimmten Situationen verwendet werden. In dieser Situation Ich glaube, Sie müssen nur den einen Rückgabewert, der nur zurück was den Wert von compareGeneral.

Nun, wenn dies ein compareGenerator es ist wirklich entweder ein Boolean wahr oder falsch, oder ein int 0 oder 1 ist, läßt die ehemaligen verwenden zurückkehren. Auch ich glaube, wir eine weniger Funktion verwenden können. Da ich nicht alle Ihre Code gesehen habe, und ich bin nicht ganz sicher, was zu tun Ihr versucht, die folgende ist hypothetisch.

function compareGeneral(a:object,b:object):Boolean
{
   //Check some property associated to each object for likeness.
   if(a.someAssignedPropery == b.someAssignedPropery)
   {
      return true;
   }
   return false;
}
var objA:Object = new Object();
objA.someAssignedProperty = "AS3";
objB.someAssignedProperty = "AS3";

compareGeneral(objA,objB);

In diesem Fall compareGeneral (objA, objB); obwohl wir damit noch nicht getan haben, gibt true zurück, etwas Nützliches. Hier ist eine Art und Weise Sie es verwenden können. Denken Sie daran, dass es entweder den Wert true zurückgibt oder falsch, so können wir es wie eine Variable behandelt werden.

if(compareGeneral(objA,objB)) //same as if(compareGeneral(objA,objB)) == true)
{
   trace("You have found a match!");
   //Here you can call some other function or set a variable or whatever you require functionality wise based on a match being found.
}
else
{
  trace("No match could be found!");
}

Ich hoffe, dass diese in der Lage ist, Sie Daten zu helfen Typen verstehen und Rückgabewerte. Ich weiß nicht, was Sie mit tmp taten, aber in der Regel Funktionen, die einen Wert Deal mit, dass eine Sache zurückkehren und nur das Dinge, so ist es am besten, dass die Funktion eine Sache gegen den anderen vergleichen, vergleichen und dass das Ausmaß des Anrufs sein . Ganz gleich, welche Funktionalität benötigen Sie mit tmp kann innerhalb seiner eigenen Funktion oder Methode gehen, und aufgerufen werden, wenn nötig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top