Skip to content

Instantly share code, notes, and snippets.

@c-yan
Created March 22, 2018 16:42
Show Gist options
  • Save c-yan/c20145ba9799f0e37cd0b0c683245508 to your computer and use it in GitHub Desktop.
Save c-yan/c20145ba9799f0e37cd0b0c683245508 to your computer and use it in GitHub Desktop.
slice shrink
package main
import (
"fmt"
)
func main() {
array := make([]int, 0, 0)
for i := 0; i < 1000; i++ {
array = append(array, i)
if i%100 == 0 {
fmt.Printf("ptr=%p len=%-3d cap=%d\n", &array[0], len(array), cap(array))
}
}
array = array[:0]
fmt.Println("-------")
for i := 0; i < 1000; i++ {
array = append(array, i)
if i%100 == 0 {
fmt.Printf("ptr=%p len=%-3d cap=%d\n", &array[0], len(array), cap(array))
}
}
}
@c-yan
Copy link
Author

c-yan commented Mar 22, 2018

Execution Result:

>slice-shrink.exe
ptr=0xc042050058 len=1   cap=1
ptr=0xc042088000 len=101 cap=128
ptr=0xc04208c000 len=201 cap=256
ptr=0xc04208e000 len=301 cap=512
ptr=0xc04208e000 len=401 cap=512
ptr=0xc04208e000 len=501 cap=512
ptr=0xc042090000 len=601 cap=1024
ptr=0xc042090000 len=701 cap=1024
ptr=0xc042090000 len=801 cap=1024
ptr=0xc042090000 len=901 cap=1024
-------
ptr=0xc042090000 len=1   cap=1024
ptr=0xc042090000 len=101 cap=1024
ptr=0xc042090000 len=201 cap=1024
ptr=0xc042090000 len=301 cap=1024
ptr=0xc042090000 len=401 cap=1024
ptr=0xc042090000 len=501 cap=1024
ptr=0xc042090000 len=601 cap=1024
ptr=0xc042090000 len=701 cap=1024
ptr=0xc042090000 len=801 cap=1024
ptr=0xc042090000 len=901 cap=1024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment