Názor ke článku Proč je Java za zenitem od Novák - @karell nikoli, následující kontrukce [myArray enumerateObjec­tsWithOptions:NSE­numerationCon­current usingBlock:^(My­ObjectType *obj, NSUInteger idx,...

  • 24. 3. 2014 14:29

    Novák (neregistrovaný)

    @karell

    nikoli, následující kontrukce

    [myArray enumerateObjec­tsWithOptions:NSE­numerationCon­current usingBlock:^(My­ObjectType *obj, NSUInteger idx, BOOL *stop)
    {
    [obj updateForIndex:idx inContext:local­Context];
    }];

    znamená že se každému prvku myArray pošle (systém se může rozhodnout že tak učiní paralelně pro víc prvků najednou pokud jsou k tomu podmínky - viz ty options) zpráva (message)

    "updateForIndex:in­Context:"

    tj. aby se updatoval
    * pro index hodnoty idx a
    * bral přitom ohled na lokální kontext podle podle localContext

    Co se ve skutečnosti s danou instancí objektu stane si pochopitelně napíšete v implementaci příslušné třídy sám.

    Neboli to doslova znamená "obj! Update for index idx in context localContext."... neboli "objekte obj! Updaduj se pro index hodnoty idx v kontextu localContext.". porovnáno s kódem "[obj updateForIndex:idx inContext:local­Context]" je to podle mne dobře čitelné, pokud tam člověk přestane hledat syntaktické prvky a magie a syntaktická koření "standardních" jazyků.