这是我的分析。
(**myint)(&k)-无法将
&k(
type **int)转换为
type **myint:
type **int和
type **myint是未命名的指针类型及其指针的基本类型,
type *int和
type*myint并没有相同的基础类型。
如果T(
*int或
*myint)是指针类型文字,则对应的基础类型是T本身。
(*myint)(k)-可以将
k(
type *int)转换为
type *myint:
type *int和
type *myint是未命名的指针类型,它们的指针基本类型
type int和
type myint(
typemyint int)具有相同的基础类型。
如果T(
int)是预声明的类型,则对应的基础类型是T本身。如果T(
myint)既不是预先声明的类型也不是类型文字,则T的基础类型是T在其类型声明(
typemyint int)中引用的类型的基础类型。
(myint)(*k)-可以将
*k(
type int)转换为
type myint:
type int并
type myint具有相同的基础类型。
如果T(
int)是预声明的类型,则对应的基础类型是T本身。如果T(
myint)既不是预先声明的类型也不是类型文字,则T的基础类型是T在其类型声明(
typemyint int)中引用的类型的基础类型。
这是来自Types部分的基础类型示例,将其修改为使用整数和int指针。
type T1 inttype T2 T1type T3 *T1type T4 T3
基础类型的
int,
T1和
T2是
int。基础类型的
*T1,
T3和
T4是
*T1。
参考文献:
Go编程语言规范
转换次数
种类
类型和值的属性
类型声明
预声明的标识符
指针类型



