2008-09-16 18 views

cevap

1

"Function" bir veri türü değil midir?

+0

Doğru işte - bu işe yarıyor. Haskell veya F # gibi daha kesin bir şeye ihtiyaç duymayı bekliyordum, ancak ActionScript'in daha bağışlayıcı olduğunu görüyorum. – Eric

0

Veri türünün ne olduğunu anlamak için, geri dönüşün amaçlanan sonucunun ne olduğunu bilmeliyiz. Karşılaştırma için kod bloğunu görmem gerekiyor ve hala bunun yardımcı olacağına inanmıyorum. "Gc.sortCompareFunction" işlevinin aynı işleviyle iki dönüşünüz var, bu dönüşün bir değer alması ve ardından aynı işlev bloğuyla kalan her şeyin geri kalanının yok sayılması anlamına gelen bir break komutu olarak işlev gördüğünden hatalı olduğuna inanıyorum. Sorun şu ki, hangi dönüşün beklenen getiri olduğunu bilmiyorum ve flaşın da bildiğini bilmiyorum. * Bir veri türü olarak * kullanabilirsiniz, ancak bu yalnızca belirli durumlarda kullanılmalıdır. Bu durumda, yalnızca, General'ın değerini ne olursa olsun geri veren yalnızca bir dönüş değerine ihtiyacınız olduğuna inanıyorum.

Eğer bu bir bir karşılaştırıcıysa, gerçekten bir Boolean TRUE veya FALSE veya int 0 veya 1 döndürmelidir, birincisini kullanalım. Ayrıca bir tane daha az işlev kullanabileceğimize inanıyorum. Tüm kodunuzu görmediğimden ve başarmaya çalıştığınızdan tam olarak emin olmadığımdan, aşağıdaki varsayımsaldır. Bu durumda compareGeneral (objA, objB) 'de

 
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); 
; Ancak, bununla ilgili yararlı bir şey yapmadığımız halde, true değerini döndürür. İşte bunu kullanmanın bir yolu. Doğru ya da yanlış bir değer döndürdüğünü unutmayın, böylece bir değişken gibi davranabiliriz.

 
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!"); 
} 

bu veri türlerini anlamak ve değerlerini iade yardımcı olduğunu umuyoruz. Ben tmp ile ne yaptığınızı bilmiyorum, ama genellikle bir şey ve sadece bu şey ile bir değer anlaşma döndüren fonksiyonları, bu yüzden karşılaştırma fonksiyonu diğerine karşı bir şey karşılaştırmak ve bu çağrı kapsamı en iyisidir . Gereksinim duyduğunuz işlevsellik ne olursa olsun, kendi işlevine veya yöntemine girebilir ve gerektiğinde çağrılabilir.

İlgili konular