如何在Golang中使用protojson包实现以下功能?
协议缓冲区:
type ProtoResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Xesp isActionResponse_Xesp `protobuf_oneof:"xesp"`
TimeTakena string `protobuf:"bytes,9,opt,name=time_takena,json=timeTakena,proto3" json:"time_takena,omitempty"`
}
Run Code Online (Sandbox Code Playgroud)
因此,我需要将 proto 数组编组为 json。例如,
type ProtoResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Xesp isActionResponse_Xesp `protobuf_oneof:"xesp"`
TimeTakena string `protobuf:"bytes,9,opt,name=time_takena,json=timeTakena,proto3" json:"time_takena,omitempty"`
}
Run Code Online (Sandbox Code Playgroud)
我该如何整理这个protoResps?
目前,protojson.Marshal函数可以封送ProtoResp,但不能封送[]ProtoResp作为其原型片段。
我还需要稍后将其解组回[]ProtoResp
提前致谢。
redis-go 中的 MSetpairs ...interface{} 在这里接受
func (c *cmdable) MSet(pairs ...interface{}) *StatusCmd {
args := make([]interface{}, 1, 1+len(pairs))
args[0] = "mset"
args = appendArgs(args, pairs)
cmd := NewStatusCmd(args...)
c.process(cmd)
return cmd
}
Run Code Online (Sandbox Code Playgroud)
现在,我已keys []string映射到values []int64要在 Redis 缓存中设置。如何将它们转换为接口片段并将它们传递给它MSet以使其工作?
#include<stdio.h>
#include<string.h>
void terminateString(char *str){
str[3] = 0;
printf("string after termination is:%s\n",str);
}
int main(){
char str[]="abababcdfef";
terminateString(str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
string after termination is:aba
Run Code Online (Sandbox Code Playgroud)
我们只将索引'3'处的元素赋值为0,但为什么忽略该索引之后的所有字符?有人可以解释一下这种行为吗?