¿Can someone explain this behaviour to me? : I was just trying some simple stuff with golang and got this behavior

Can someone explain to me why? I feel I have a wrong misunderstanding of it... 

```
package main

import (
"fmt"
)

func main() {
	s := []int{1, 2, 3}
	fmt.Println(s)
	fmt.Println("----")
	a:= s[0:2]
	fmt.Println(s)
	fmt.Println(a)
	a = append(a, 5)
	fmt.Println("----")
	fmt.Println(s)
	fmt.Println(a)
	a= append(a, 6)
	fmt.Println("----")
	fmt.Println(s)
	fmt.Println(a)
}

```
Response:

``` 
[1 2 3]
----
[1 2 3]
[1 2]
----
[1 2 5]
[1 2 5]
----
[1 2 5]
[1 2 5 6]
```
I was expecting:
```
[1 2 3]
----
[1 2 3]
[1 2]
----
[1 2 3]
[1 2 5]
----
[1 2 3]
[1 2 5 6]
```

Thanks in advance, :)