何らかの事情で全く異なる型の間の変換をする方法です。
unsafe です。
package main
import (
"fmt"
"unsafe"
)
func main() {
aa := []bool{true, false, true}
//bb := ([]int8)(aa)
//cannot convert aa (type []bool) to type []int8
bb := *(*[]int8)(unsafe.Pointer(&aa))
fmt.Printf("aa=%#v, bb=%#v\n", aa, bb) //aa=[]bool{true, false, true}, bb=[]int8{1, 0, 1}
}
普通は使うものではありませんが、参考までに。