先把字符串和类的reflect.Typeof关联
好,然后根据字符串找到对应的类型,用reflect.New构造对象就可以了。在rpc框架里经常要这么干,根据网络上传过来的数据,构造相应的对象,
然后回调。可以参考下这个文件里面的dispatchRequest方法:https://github.com/xjdrew/daisy/blob/master/pb/rpc/context.go
您可以使用 Go 语言的 "strings" 包中的 "Split" 函数将字符串拆分为键值对,然后使用 "map" 数据类型存储这些键值对。下面是代码示例:
package main
import (
"fmt"
"strings"
)
func main() {
str := "frame= 425 fps= 71 q=-1.0 Lsize= 5158kB time=00:00:17.11 bitrate=2468.7kbits/s dup=1 drop=0 speed=2.84x"
m := make(map[string]string)
pairs := strings.Split(str, " ")
for _, pair := range pairs {
kv := strings.Split(pair, "=")
if len(kv) == 2 {
m[kv[0]] = kv[1]
}
}
fmt.Println(m)
}
运行上述代码后,您将得到一个存储字符串中的键值对的 "map" 对象。如果键值对不存在,则不会将它们存储到 "map" 中。