func main() {
var dia proxy.Dialer
d1 := dia.(proxy.ContextDialer).DialContext
d1()
}
d1 具有 4 个参数,其实应该为 3 个参数
这种情况是可以编译通过的
func main() {
var dia proxy.Dialer
dc := dia.(proxy.ContextDialer)
d1 := dc.DialContext
d1()
}
这个 d1 是正确的三个参数
版本
GoLand 2023.2
Build #GO-232.8660.185, built on July 26, 2023
Runtime version: 17.0.7+7-b1000.6 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
1
koplonjaslon02 2023-08-12 23:10:38 +08:00
感觉是优先级的问题,(dia.(proxy.ContextDialer)).DialContext 和 dia.((proxy.ContextDialer).DialContext) 是不是不一样?
|
2
bli22ard OP @koplonjaslon02 是一样的
|
3
bli22ard OP https://youtrack.jetbrains.com/issue/GO-14258/False-positive-type-inference-in-type-assertions 看起来是 goland bug 。搞不懂的是,为什么官方没有回复
|