Подмена длины через SliceHeader

Что выведетSeniorбесплатно02-t023

После append, результат которого отброшен, длину слайса принудительно увеличивают через reflect.SliceHeader и unsafe.Pointer. Что выведет программа и почему?

main.gogo
1package main2 3import (4	"fmt"5	"reflect"6	"unsafe"7)8 9func forceLen(dst unsafe.Pointer, n int) {10	(*reflect.SliceHeader)(dst).Len = n11}12 13func main() {14	buf := append(make([]int, 0, 10), 7, 8, 9, 10)15	_ = append(buf, 11)16 17	fmt.Println(buf)18 19	forceLen(unsafe.Pointer(&buf), 6)20 21	fmt.Println(buf)22}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.