Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz adam_ #4667 üzenetére

    Azt írtad, hogy
    return "You're getting plenty of sleep! Maybe even too much!";
    a
    return "You're getting plenty of sleep! Maybe even too much!";
    helyett, szóval sztem annyi a para, hogy beleraktál csomó szóközt a stringbe.

    Szerk.:
    (#4668) Jim-Y:
    Mármint már önmagában az az anti-pattern, hogy több return is van a függvényben? Sokszor ezek az úgynevezett nagy patternek, illetve anti-patternek szimplán bullshitek. :D Ez egy jó hülye kitaláció, hogy nem lehet több return egy függvényen/metóduson belül.
    Lehet simán olyan függvény/metódus, amiben tök szépen lerövidíti a kódot, hogy egy bizonyos feltétel teljesülése esetén azonnal visszatérsz, és még csak nem is írsz else-ágat, mert nyilván ha nem tért vissza, akkor az else-ágnak minősül (és ez most nem valami alacsonyszintű kód ugye, nem b@szakszunk ilyenekkel), és így megspórolsz egy hatalmas nagy beljebbtolt else-blokkot.

    Példa pszeudokóddal:
    function bullshit(){
    if(foo) {
    stuff = false;
    }
    else {
    ....
    ....
    ....
    ....
    ....
    ....
    stuff = true;
    }
    return stuff;
    }

    VAGY:

    function bullshit(){
    if(foo) {
    return false;
    }

    ....
    ....
    ....
    ....
    ....
    ....
    return true;
    }

  • Jim-Y

    veterán

    válasz adam_ #4667 üzenetére

    Szerintem csak elírtad a visszatérő üzenetet, ezt már én is megcsináltam még korábban, és vissza tudtam keresni a kódot:

    // Write your function below.
    // Don't forget to call your function!

    function sleepCheck( numHours ) {
    if ( numHours >= 8 ) {
    return "You're getting plenty of sleep! Maybe even too much!";
    }
    else {
    return "Get some more shut eye!";
    }
    }

    sleepCheck(10);
    sleepCheck(5);
    sleepCheck(8);

    FYI: ez egy kisebb anti pattern, ha minél jobb stílusban akarnánk megcsinálni a feladatot akkor csak egy darab return statement lenne a függvényben. http://jsfiddle.net/fgexxnjo/2/ Megjegyzem, ez nem mindig lehetséges, de törekedni kell rá.

Új hozzászólás Aktív témák