„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.
Autor se zabývá vývojem kompilátorů a knihoven pro objektově-orientované programovací jazyky.
Přečteno 36 203×
Přečteno 25 362×
Přečteno 23 796×
Přečteno 20 178×
Přečteno 17 875×