我正在阅读DigitalOcean的golang客户端。我注意到他们在_
变量中创建了他们的* Op结构的实例。例:
https://github.com/digitalocean/godo/blob/master/droplets.go#L32
var _ DropletsService = &DropletsServiceOp{}
为什么需要这条线?
答案 0 :(得分:9)
这一行是*DropletsServiceOp满足DropletsService接口的编译时检查。
该行对程序的执行没有影响。
答案 1 :(得分:3)
如果你看一下该文件的责任,那么你就会得到一个线索:
https://github.com/digitalocean/godo/blame/master/droplets.go#L32
它执行编译时检查,*DropletsServiceOp
满足DropletsService
接口。在提交之前,他们在测试套件中执行此操作。