Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Swifter 13. 04. 2018, 17:22:36
-
Zdravím, mám dotaz k chování map ve Swiftu, všimnul jsem si, že když se předává mapa jako argument funkce, předá se ve skutečnosti jako reference, i když jde o hodnotové typy. Při modifikaci se někdy udělá kopie všech dvojic, někdy ne, a nevypozoroval jsem pattern, kde se kopíruje a kdy zůstane reference stejná. Nevíte někdo, jak to je vnitřně udělané (a proč)? Ptám se jen ze zvědavosti, prakticky vše funguje, ale rád bych se něco přiučil, bohužel v dokumentaci detaily nejsou.
-
Střílím totálně od boku, Swift neznám. Ale pokud se týká přiučení se, tak třeba to dělají takto: https://phpfashion.com/php-cerna-magie-optimalizace
-
Zdravím, mám dotaz k chování map ve Swiftu, všimnul jsem si, že když se předává mapa jako argument funkce, předá se ve skutečnosti jako reference, i když jde o hodnotové typy. Při modifikaci se někdy udělá kopie všech dvojic, někdy ne, a nevypozoroval jsem pattern, kde se kopíruje a kdy zůstane reference stejná. Nevíte někdo, jak to je vnitřně udělané (a proč)? Ptám se jen ze zvědavosti, prakticky vše funguje, ale rád bych se něco přiučil, bohužel v dokumentaci detaily nejsou.
Podle výsledku isKnownUniquelyReferenced se buď dělá CoW, nebo ne. Klasická transparentní optimalizace.