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
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 *
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
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0