Khi lấy chuỗi con của chuỗi trong Go, không có bộ nhớ mới nào được cấp phát. Thay vào đó, biểu diễn bên dưới của chuỗi con chứa một con trỏ Dữ liệu là một bù đắp của con trỏ Dữ liệu của chuỗi ban đầu. Điều này có nghĩa là nếu tôi có một chuỗi lớn và muốn theo dõi một chuỗi con nhỏ, bộ thu gom rác sẽ không thể giải phóng bất kỳ chuỗi lớn nào cho đến khi tôi giải phóng tất cả các tham chiếu đến chuỗi con ngắn hơn.đế và bộ thu gom rác Đi
Lát có vấn đề tương tự, nhưng bạn có thể giải quyết vấn đề bằng cách tạo bản sao của subslice bằng cách sử dụng copy(). Tôi không biết về bất kỳ hoạt động sao chép tương tự nào cho chuỗi. Cách thành ngữ và nhanh nhất để tạo "bản sao" của chuỗi con là gì?
Đây là loại một thiếu sót của Go. Có thể sử dụng make (string, foo [x: y]) cho việc này. – fuz