Názor ke článku Swift podruhé od Sten - „Navíc není pravda, jak nesmyslně zaznělo v minulé...

  • 5. 6. 2014 16:08

    Sten (neregistrovaný)

    „Navíc není pravda, jak nesmyslně zaznělo v minulé diskusi, že by zavádělo víceznačnou syntax. Překladač si s případným překlepem hravě poradí.“

    Jak si poradí s tím, kdy mezi ) a { vložíte konec řádku? Podle manuálu by se tím z trailing closure měla vyrobit samostatná closure, to by mělo jít zkompilovat, a že to dělá něco úplně jiného, se pozná až za běhu.

    „u uzávěrů překladač automaticky rozhodne o vhodném způsobu zkopírování proměnných (což žádný dnes rozšířený jazyk nedělá).“

    Co jsem vyčetl v refernci, tak Swift akorát dělá to samé co [&] v C++ s tím rozdílem, že ve Swiftu už z podstaty fungování nejsou proměnné omezené scope, ale počítáním referencí. Dost podobně fungují generátory v Pythonu.

    „Nevím ale, jestli to lze určit explicitně (jako v C++ [i,&j])“

    V refernci možnost předávat parametry hodnotou není uvedena, takže pravděpodobně ne.