gpt4 book ai didi

go - ioutil.ReadAll 惨遭失败

转载 作者:IT王子 更新时间:2023-10-29 02:25:31 27 4
gpt4 key购买 nike

我正试图从这种天气中获取一个 io.Reader,它是我给出的链接或路径。对于某些上下文,我正在使用标志

func getString(link, path string) (io.Reader, error) {

var dick io.ReadWriter

if link != "" {
resp, err := http.Get(link)
if err != nil {
return nil, err
}

io.Copy(dick, resp.Body)
}

if path != "" {
file, err := os.Open(path)
if err != nil {
return nil, err
}

io.Copy(dick, file)
}

return dick, nil

}

和繁荣

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x46e949]

这个坏男孩出现了

最佳答案

io.ReadWriter 是一个接口(interface),你需要的是一个 io.ReadWriter 的实例来写入(通过 io.Copy)并返回 io .Reader 界面。

想到的一种类型是 bytes.Buffer。你的代码看起来像这样

func getString(link, path string) (io.Reader, error) {

dick := bytes.NewBuffer(nil)

if link != "" {
resp, err := http.Get(link)
if err != nil {
return nil, err
}

io.Copy(dick, resp.Body)
}

if path != "" {
file, err := os.Open(path)
if err != nil {
return nil, err
}

io.Copy(dick, file)
}

return dick, nil

}

您还吞下了来自 io.Copy 的错误,这不是一个好主意。

关于go - ioutil.ReadAll 惨遭失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47256520/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com