You're right:
That is because The Go Playground version is old (go1.6.2
), use new version.
The correct output (using go version go1.7rc6
) is:
a: AAA b: AAABBB
a: AAA b: AAACCC c: AAACCC
1- The Go Playground (go1.6.2
):
package main
import "fmt"
func main() {
a := make([]byte, 100, 1000)
a = []byte("AAA")
b := append(a, []byte("BBB")...)
fmt.Println(" a: ", string(a), " b: ", string(b))
c := append(a, []byte("CCC")...)
fmt.Println(" a: ", string(a), " b: ", string(b), " c: ", string(c))
//fmt.Println(&b) //try commenting this out and in and running the program
}
output:
a: AAA b: AAABBB
a: AAA b: AAABBB c: AAACCC
2- The Go Playground (go1.6.2
):
package main
import "fmt"
func main() {
a := make([]byte, 100, 1000)
a = []byte("AAA")
b := append(a, []byte("BBB")...)
fmt.Println(" a: ", string(a), " b: ", string(b))
c := append(a, []byte("CCC")...)
fmt.Println(" a: ", string(a), " b: ", string(b), " c: ", string(c))
fmt.Println(&b) //try commenting this out and in and running the program
}
output:
a: AAA b: AAABBB
a: AAA b: AAACCC c: AAACCC
&[65 65 65 67 67 67]
using go version go1.7rc6
:
package main
import "fmt"
func main() {
a := make([]byte, 100, 1000)
a = []byte("AAA")
b := append(a, []byte("BBB")...)
fmt.Println(" a: ", string(a), " b: ", string(b))
c := append(a, []byte("CCC")...)
fmt.Println(" a: ", string(a), " b: ", string(b), " c: ", string(c))
//fmt.Println(&b) //try commenting this out and in and running the program
}
output :
a: AAA b: AAABBB
a: AAA b: AAACCC c: AAACCC