From 1c42092310db63c9f0cdb42a8a7ed39787cb4a80 Mon Sep 17 00:00:00 2001 From: sfw Date: Mon, 30 Jul 2018 19:53:40 +0800 Subject: [PATCH] fixed typos --- ch4-rpc/ch4-02-pb-intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch4-rpc/ch4-02-pb-intro.md b/ch4-rpc/ch4-02-pb-intro.md index 3be18f3..95fe4a1 100644 --- a/ch4-rpc/ch4-02-pb-intro.md +++ b/ch4-rpc/ch4-02-pb-intro.md @@ -279,7 +279,7 @@ func (p *netrpcPlugin) buildServiceSpec(svc *descriptor.ServiceDescriptorProto) } ``` -其中输入参数是`*descriptor.ServiceDescriptorProto`类型,完整描述了一个服务的所有信息。然后通过`svc.GetName()`就可以获取Protobuf文件中定义对服务对名字。Protobuf文件中的名字转为Go语言对名字后,需要通过`generator.CamelCase`函数进行一次转换。类似的,在for循环中我们通过`m.GetName()`获取方法的名字,然后再转为Go语言中对应的名字。比较复杂的是对输入和输出参数名字的解析:首先需要通过`m.GetInputType()`获取输入参数的类型,然后通过`p.ObjectNamed`类型对应的类对象信息,最后获取类对象的名字。 +其中输入参数是`*descriptor.ServiceDescriptorProto`类型,完整描述了一个服务的所有信息。然后通过`svc.GetName()`就可以获取Protobuf文件中定义的服务的名字。Protobuf文件中的名字转为Go语言对名字后,需要通过`generator.CamelCase`函数进行一次转换。类似的,在for循环中我们通过`m.GetName()`获取方法的名字,然后再转为Go语言中对应的名字。比较复杂的是对输入和输出参数名字的解析:首先需要通过`m.GetInputType()`获取输入参数的类型,然后通过`p.ObjectNamed`类型对应的类对象信息,最后获取类对象的名字。 然后我们就可以基于buildServiceSpec方法构造的服务的元信息生成服务的代码: