Regarding the old array being left out, when Slice refers to the newly created array, when cap is exceeded in golang

WBOY
Release: 2024-02-10 21:33:08
forward
660 people have browsed it

Regarding the old array being left out, when Slice refers to the newly created array, when cap is exceeded in golang

php editor Youzi will introduce to you a problem about old arrays being omitted in this article, and explain that in golang, when Slice refers to a newly created array, when the cap is exceeded What happens when. This question involves the dynamic changes of Slice and arrays. For developers who are learning or using golang, it is an important knowledge point that needs to be understood and mastered. Through the answers in this article, I hope it can help everyone better understand and apply this concept.

Question content

What happens to the underlying array in the slice when a new array is created and the slice or any other variable no longer references the old array?

Suppose we create an empty slice with a length of 3 and an upper limit of 4 Then when we try to append an element that exceeds the capacity of the slice.

slice:=make([]int,3,4)
    slice = append(slice, 6,7) //exceeds the cap, when appending 7 
    fmt.Println(slice)
Copy after login

In the above program, what will happen to the old array, since it is no longer referenced by a slice or any other variable, will its memory be released or will it remain in memory until the program completes execution? p>

Workaround

If there is no live reference anywhere in this array, it will be garbage collected. If there is at least one reference to any element in the array, the array will remain in memory until the reference disappears.

The above is the detailed content of Regarding the old array being left out, when Slice refers to the newly created array, when cap is exceeded in golang. For more information, please follow other related articles on the PHP Chinese website!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!