为什么说 incorrect when p is too small

来源:7-2 函数式编程例一

LichFaker123

2018-02-24

在这章最后为什么说“incorrect when p is too small”,我把字符串弄的很大也没有出现老师说的这个问题。

还有默认p []byte的大小是多少?

还有最后老师说的解决方案是什么,没太听明白

写回答

1回答

ccmouse

2018-02-26

抱歉节日期间网络不好没有及时回复。

由于这些不是主线,所以的确讲的简单了点。这里我再详细说一下,并附上代码。

p is too small是指p这个[]byte长度太短。后期我们输出比如1597,2584这样的数,如果p的长度不够4~5字节,那就只能输出一半。默认的大小根据使用的api不同有所不一样,不过一般不会那么短。这里我们要手动的去读。比如:

//img.mukewang.com/szimg/5a936f380001e16315400844.jpg

注意这里每次只读两字节,就挂了:

//img.mukewang.com/szimg/5a936aa40001e69d11940536.jpg

注意13后面的换行没了,然后89之后应该是是144,233,这里只有1423,每次只读两个字节的缘故。

修改的话只能加一个缓冲区把输出数据缓存下来。bytes.Buffer可以做这件事。

//img.mukewang.com/szimg/5a93705f000157e318481536.jpg

这样的话,我外面读的时候即使缓冲区开的很小也可以读正确。

//img.mukewang.com/szimg/5a93708b0001356d14680920.jpg



5
3
ccmouse
回复
Cliven_cn
是的。我在这个回答里给出了一个解决方法
2019-11-22
共3条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程