1
resposta

function cap mostra o mesmo valor de retorno da function len

names := []string{"Eliel", "Adriana"}

    fmt.Println(names)
    fmt.Println(len(names), cap(names))

    names = append(names, "Manuela", "Madalena")
    fmt.Println(names)
    fmt.Println(len(names), cap(names))

result

[Eliel Adriana]
2 2
[Eliel Adriana Manuela Madalena]
4 4
1 resposta

Oi Eliel, tudo bem?

Como você adicionou dois itens no slice novo, mesmo após ele ter dobrado o cap para 4, o len ficará do mesmo tamanho:

names := []string{"Eliel", "Adriana"} // Cria um slice com len 2 e cap 2

fmt.Println(names)
fmt.Println(len(names), cap(names))

names = append(names, "Manuela", "Madalena") // dobra o tamanho do slice para cap 4 e adiciona mais dois itens (len 4)
fmt.Println(names)
fmt.Println(len(names), cap(names))    

Porém, se você adicionar apenas 1 item, perceberá que o cap ficará 4 e o len apenas 3:

names := []string{"Eliel", "Adriana"} // Cria um slice com len 2 e cap 2
fmt.Println(names)
fmt.Println(len(names), cap(names))

names = append(names, "Manuela") // dobra o tamanho do slice para cap 4 e adiciona mais um item (len 3)
fmt.Println(names)
fmt.Println(len(names), cap(names))