class FooClass {
MyClass<? extends Map<String, List<? extends Serializable>>> fooField;
}
是Type
的对象,v
是指向Vertex
的指针的方法。那么为什么Scale
没有错,因为Vertex
不是指向v.Scale(10)
对象的指针?感谢。
v
答案 0 :(得分:8)
如果
x.m()
x
的{{3}}包含m
并且参数列表可以分配给m
,则方法调用x
有效。 {1}}。如果&x
为method set且m
的方法集包含x.m()
,则(&x).m()
是Scale()
的简写。
编译器发现v
有一个指针接收器,并且v.Scale(10)
是可寻址的(因为它是一个局部变量),因此(&v).Scale(10)
将被解释为DialogFragment
这只是规范为您提供的众多便利之一,因此源代码可以保持干净。
答案 1 :(得分:2)
这是Go自动解除引用:
来自https://golang.org/ref/spec#Method_values:
与选择器一样,使用指针对带有值接收器的非接口方法的引用将自动取消引用该指针:pt.Mv等效于(* pt).Mv。