登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [golang/切片]golang 其实是可以多次操作一个切片的不同部分的     [回主站]     [分站链接]
标题
[golang/切片]golang 其实是可以多次操作一个切片的不同部分的
clq
浏览(313) + 2023-08-17 18:34:20 发表 编辑

关键字:

[2023-08-17 18:35:30 最后更新]
[golang/切片]golang 其实是可以多次操作一个切片的不同部分的

var buf = make([]byte, 1024 * 1024 * 5); //不能超过 4 m
//n, err := reader.Read(buf); //这个可能只会读取一部分 //比如 oss 是 32768 一次,是要多次读取的

n, err := io.ReadFull(reader, buf);

rbuf := buf[:n];

// //----
// n, err = reader.Read(buf);
// rbuf2 := buf[:n];

// //---- //重复读取可以看下 ReadFull 的代码,写得很好,也可以看切片的 block 操作
// rbuf = append(rbuf, rbuf2...);
// //--

s = string(rbuf);


--------------------------------------------------------
func ReadFull(r Reader, buf []byte) (n int, err error) {
return ReadAtLeast(r, buf, len(buf))
}


func ReadAtLeast(r Reader, buf []byte, min int) (n int, err error) {
if len(buf) < min {
return 0, ErrShortBuffer
}
for n < min && err == nil {
var nn int
nn, err = r.Read(buf[n:])
n += nn
}
if n >= min {
err = nil
} else if n > 0 && err == EOF {
err = ErrUnexpectedEOF
}
return
}



总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1