reklama

Mapy ve Swiftu jako hodnoty

Swifter

Mapy ve Swiftu jako hodnoty
« kdy: 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.

reklama


Re:Mapy ve Swiftu jako hodnoty
« Odpověď #1 kdy: 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

Abcd

Re:Mapy ve Swiftu jako hodnoty
« Odpověď #2 kdy: 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.

 

reklama