Hlavní navigace

Názor k článku Operátory a asociativní pole v jazyku Lua od Pavel Tišnovský - mohlo by pomoci nejake rozsireni nebo patch z:...

  • Článek je starý, nové názory již nelze přidávat.
  • 25. 3. 2009 13:34

    Pavel Tišnovský
    mohlo by pomoci nejake rozsireni nebo patch z: http://lua-users.org/wiki/BitwiseOperators

    IMHO tam tyto operatory nejsou ze dvou duvodu:

    1) je tezke definovat, co tyto operatory delaji nad defaultnim ciselnym typem, coz je v Lua double. Napriklad JavaScript (taktez s jednim typem numeric) s tim ma problemy, staci si vyzkouset v prohlizeci (adresni radek + Enter):
    javascript:alert(1|2)
    versus
    javascript:alert(1|1.99999999999)
    to druhe muze byt vysledek nejake bezne pocetni operace nad doublem, klidne i jednoduchy soucet.

    2) pouziti techto operatoru je dvoji: sahani na jednotlive bity napriklad v hlavickach souboru ci protokolu - zde stejne nema smysl to delat nad doublem (viz vyse, lepsi je volat nejakou c-ckovou funkci ci pouzit patch/rozsireni) a potom bitove mnoziny (to jsou ony podminky) - zde je ovsem ve vysokourovnovem jazyku IMHO vhodnejsi pouzit skutecne bitove mnoziny, ktere nejsou omezeny na 32/64 bitu, vysledek je i citelnejsi, protoze se nemusi vytvaret nejake enum-like konstanty apod.