Я ожидал, что следующий фрагмент кода выдаст a
как {0x01, 0x02}
(передача по значению) или как {0x03, 0x02, 0x01}
(передача по ссылке). Странно, но выдает результат как {0x03, 0x02}
. Не могли бы вы помочь мне понять, почему это так?
package main
import "fmt"
func test1(t []byte) {
t[0] = 0x03
t = append(t, 0x01 )
}
func main() {
a := []byte{0x01, 0x02 }
test1(a)
_ = a
fmt.Printf("%v", a)
}