Podczas pobierania podciągów w łańcuchu, nie jest przydzielana nowa pamięć. Zamiast tego podstawowa reprezentacja podłańcucha zawiera wskaźnik danych, który jest przesunięciem wskaźnika danych pierwotnego łańcucha.podłańcuchy i urządzenie do zbierania śmieci Go
Oznacza to, że jeśli mam duży ciąg i chcę śledzić mały fragment, śmieciarz nie będzie mógł zwolnić żadnego z dużych ciągów, dopóki nie zwolnię wszystkich odniesień do krótszego podciągu.
Plastry mają podobny problem, ale można obejść go, wykonując kopię podpórki za pomocą funkcji copy(). Nie jestem świadomy żadnej podobnej operacji kopiowania dla ciągów. Jaki jest idiomatyczny i najszybszy sposób na "skopiowanie" podłańcucha?
Jest to rodzaj Mankamentem Go. Powinno być możliwe użycie make (string, foo [x: y]). – fuz