go var _ Dialog=(*Type)(nil) 写法请教

我最近在看fyne的代码,就发现里面很多地方都类似写法

golang 中类似下面这样的写法,有何意义?
var _ Dialog = (*dialog)(nil)

以上代码出现在:下面连接中的 35 行
https://github.com/fyne-io/fyne/blob/master/dialog/base.go

我的理解如下
用了 var 关键字,意思是定义变量
用了 _ 表示丢弃
用了 Dialog 表示丢弃的变量类型为 Dialog
用了  = (*dialog)(nil) 后面的部分 我不太理解了,这是几个意思呢?有知道的分享下。谢谢

这一行字面的作用只是显式地声明 dialog 是实现了 Dialog 这个接口的。
至于为什么要显式声明我有两个猜想:

  1. 提高代码可读性
  2. 类似于消除数组边界检查(BCE),可能提前声明有助于编译器类型断言?

第一个用这种办法却是可以很好地提高可读性,在接口内容改变后也可以很快知道
第二个只是我瞎猜的