Autor | Zpráva | ||
---|---|---|---|
tito100 Profil |
dobrý den. chcel by som sa spítat. či je možné pri vlastných triedach vytvárat viacej konstruktorov ako je to v iných jazykoch. napríklad :
class MyClass { public var name:String; public var year:int; function MyClass(_name:String) { name=_name; } function MyClass(_year:int) { year=_year; } } ked som to skúšal tak my vyhodilo chybu na riadku druhého konstruktora: Multiple constructor definitions found. Constructor may not be defined in <Script/> code. je možné že sa to robý iním sposobom. pozeral som do dokumentacie ale akosi som tam nenašiel zmienku. vopred dakujem používam AS3 |
||
tito100 Profil |
#2 · Zasláno: 2. 2. 2010, 12:39:04
tito100:
zistil som že sa to neda napada ma akurat jedno riešenie. spravit prazdny konstruktor, a spravit 2 metody construc1 a construc2. asi najjednoduchšie. |
||
DoubleThink Profil * |
#3 · Zasláno: 2. 2. 2010, 13:22:06
Nejde to, ale skoro stejného výsledku dosáhneš i s jedním:
function MyClass(param:*){ if(param is String){ name = param; }else if(param is int){ year = param; } } |
||
tito100 Profil |
#4 · Zasláno: 2. 2. 2010, 14:21:25 · Upravil/a: tito100
DoubleThink:
ano. to ma napadlo ako prve. ale dam ukažku prečo som to zamietol . vlaste radcej nedam. je to dost dlhe. proste bolo by to škarede riešenie, neprehladne. kedže konstruktor ma 58 riadkov. v pripade uvedeneho prikladu by sa to dalo , a bolo by to aj lepšie. v mojom pripade je to naobtiaž |
||
DoubleThink Profil * |
#5 · Zasláno: 2. 2. 2010, 14:35:47
Proč? Pokud jsem pochopil, jediný rozdíl obou konstruktorů je ve vstupních parametrech, takže kódová úspornost bude stejná - je jedno jestli bloky vymezuje definice metody nebo podmínka.
Pokud by se lišil i počet parametrů, je možné použít rest operátor. |
||
Časová prodleva: 14 let
|
0