How to use the Append function in Golang

Function: add elements at the end of the original slice

package main //There must be a main package
 
import "fmt"
 
func main() {
    s1 := []int{}
    fmt.Printf("len = %d, cap = %d\n", len(s1), cap(s1))
    fmt.Println("s1 = ", s1)
 
    //Add elements at the end of the original slice
    s1 = append(s1, 1)
    s1 = append(s1, 2)
    s1 = append(s1, 3)
    fmt.Printf("len = %d, cap = %d\n", len(s1), cap(s1))
    fmt.Println("s1 = ", s1)
 
    s2 := []int{1, 2, 3}
    fmt.Println("s2 = ", s2)
    s2 = append(s2, 5)
    s2 = append(s2, 5)
    s2 = append(s2, 5)
    fmt.Println("s2 = ", s2)
}

Results of the

len = 0, cap = 0
s1 =  []
len = 3, cap = 4
s1 =  [1 2 3]
 
s2 =  [1 2 3]
s2 =  [1 2 3 5 5 5]
package main
func main() {
    s := []int{}; println(cap(s)) // 0
    s = appendN(s, 1); println(cap(s)) // 2
    s = appendN(s, 2); println(cap(s)) // 4
    s = appendN(s, 4); println(cap(s)) // 8
    s = appendN(s, 8); println(cap(s)) // 16
    s = appendN(s, 16); println(cap(s)) // 32
    s = appendN(s, 32); println(cap(s)) // 64
    s = appendN(s, 64); println(cap(s)) // 128
    s = []int{1,2,3}; println(cap(s)) // 3
    s = appendN(s, 2); println(cap(s)) // 8
}
func appendN(s []int, n int) []int {
    for i := 0; i < n; i++ {
        s = append(s, 0)
    }
    return s
}

Leave a Reply

Your email address will not be published. Required fields are marked *

en_USEnglish