课程疑问?
来源:18-6 解析器的序列化

鱼右
2018-12-27
1. 老师你好, 上边的这个参数 也没有序列化呀, 它是怎么传到客户端的呢?
2. 整篇 也没看到老师在哪里序列化的, 有点尴尬, 老师是怎么做的序列化呢?
3. 像这种struct 嵌函数的, protobuf, json 也没法直接序列化吧...
4. 老师辛苦了, 这两天在看这个 序列化, 问题真心有点多, 谢谢ccmouse老师.
写回答
1回答
-
ccmouse
2018-12-29
我们注意到这个不是普通的client, 是jsonrpc.Client。既然是jsonrpc.Client,它就一定会有能力把需要传输的结构序列化成一个json字符串。你可以跟踪一下这边client.Call函数。jsonrpc的库非常简单,我们很容易能够找到里面序列化的相关代码,也就是会调用Marshall。
我的课程的序列化在crawler_distributed目录里。具体在https://git.imooc.com/coding-180/coding-180/src/master/crawler_distributed/worker/types.go
对,的确不能。这种內建函数会在运行时报错。你可以试试。
没关系,能够帮同学解决问题是我的课的价值。序列化的确是比较基础但由于一般不会接触到,的确有时会比较复杂。这里我建议进一步看一下jsonrpc里的Call,找到他是如何把你的结构Marshall成字符串的。另一方面,看看我这边Serialize, Deserialize分别是如何被调用的。这两个结合起来理解。
012018-12-29
相似问题