良许Linux教程网 干货合集 Golang copy代替ReadAll

Golang copy代替ReadAll

使用 Golang 实现,使用 io.Copy 代替 ioutil.ReadAll。

Golang copy代替ReadAllGolang copy代替ReadAll


题目

函数 调用 io.Copy(dst, src) 会从 src 中读取内容,并将读到的结果写入到 dst 中,使用这个函数替代掉例子中的 ioutil.ReadAll 来拷贝响应 结构体 到 os.Stdout,避免申请一个缓冲区(例子中的 b)来存储。记得处理 io.Copy 返回结果中的错误。

题目解决思路

我们只需要将 ioutil.ReadAll 替换为 io.Copy 函数。

代码具体实现

package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
for _, url := range os.Args[1:] {
 resp, err := http.Get(url)
 if err != nil {
  fmt.Fprintf(os.Stderr, "fetch: %v\n", err)
  os.Exit(1)
 }
 b, err := io.Copy(os.Stdout, resp.Body)
 resp.Body.Close()
 if err != nil {
  fmt.Fprintf(os.Stderr, "fetch: %v\n", err)
  os.Exit(1)
 }
 fmt.Printf("%s", b)
}
}

我们输入以下命令行,开始运行程序:

go run haicoder.go http://www.haicoder.net

程序运行后,控制台输出如下: Golang copy代替ReadAllGolang copy代替ReadAll

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部