第一种情况:
``` go
sl:=[]int{1,2,3}
psl:=reflect.SliceHeader(sl)
fmt.Println(psl)
```
报错:cannot convert expression of type []int to type SliceHeader
第二种情况:
``` go
var psl []int
sl:=[]int{1,2,3}
psl=reflect.SliceHeader(sl)
fmt.Println(psl)
```
报错:
cannot convert expression of type []int to type SliceHeader;
cannot use reflect.SliceHeader(sl) (type SliceHeader) as type []int in assignment
初学go,为什么sliceheader类型和slice类型不能互转?
```go
package main
func main() {
num := 123456789
x := 0
for num != 0 {
x = 10*x + num%10
num = num / 10
}
print(x)
}
```
#4
更多评论
嗯,谢谢回答。sliceheader是个有三个成员变量的结构体,那slice内部是什么样子的?你说的这个具名类型存在的意义是啥?就只是为了这个`sh := (*reflect.SliceHeader)(unsafe.Pointer(&s))` ?
#2