4.1.2 疑问
swiftslee opened this issue · 2 comments
swiftslee commented
4.1.2
var _ HelloServiceInterface = (*HelloServiceClient)(nil)
为什么此处需要client满足这个接口呢 在本地编译试了下注释掉这句也能实现rpc
求解释~
chai2010 commented
当然不一定非要满足和服务器端一样的接口,像grpc的客户端和服务器端的接口就是2套。
让客户端满足这个接口,可以避免一些低级错误,在编译阶段就可以发现。
这句话的作者只是让编译器保证客户端代码满足接口。
这是编程中常用的技巧:通过断言不同的代码之间的关系,来尽量提前发现一些低级的问题。
swiftslee commented
当然不一定非要满足和服务器端一样的接口,像grpc的客户端和服务器端的接口就是2套。
让客户端满足这个接口,可以避免一些低级错误,在编译阶段就可以发现。这句话的作者只是让编译器保证客户端代码满足接口。
这是编程中常用的技巧:通过断言不同的代码之间的关系,来尽量提前发现一些低级的问题。
谢谢~