Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Swifter 13. 04. 2018, 17:22:36

Název: Mapy ve Swiftu jako hodnoty
Přispěvatel: 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.
Název: Re:Mapy ve Swiftu jako hodnoty
Přispěvatel: BoneFlute 14. 04. 2018, 05:31:37
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
Název: Re:Mapy ve Swiftu jako hodnoty
Přispěvatel: Abcd 16. 04. 2018, 15:53:07
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.