记录一次当客户端调用带out标识符形参的tars服务端接口不输出的情况
tars接口定义如下
某个tars接口在go中的实现如下
以上接口使用的dao方法如下
好了,以上的实现会出现客户端调用tars服务端的接口时,out响应包会返回空,但是在实现中使用控制台打印是有内容的(含有查询数据库的结果集)。
=======================================================================================
2024年5月25日13:13:28
破案了,response响应包不能在实现中重新声明,因为tars服务运行时对添加了out输出标识的形参进行了预处理(具体预处理了什么还需要探索tars的源代码才知道),所以只能由始至终传递使用函数签名上声明的response响应包,不能在函数内重新声明使用!上面代码中就是因为在dao中重新声明了response响应包再使用,此时返回的已经不再是tars预处理过的那个响应包了,才导致out输出空内容