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 。搞不懂的是,为什么官方没有回复 |