GoLang:不能在多个赋值中将[]字节分配给z(类型字符串)

时间:2013-07-03 14:00:09

标签: string go byte

我正在尝试查找文件夹中文件的内容,因此我列出文件夹中的内容然后循环浏览它我正在尝试读取文件。

files, _ := ioutil.ReadDir("documents/")
for _, f := range files {
        //fmt.Println(f.Name())

    z := "documents/" + f.Name()
    fmt.Println(z) // prints out 'documents/*doc name*' recursively
    z, err := ioutil.ReadFile(z) // This line throws up the error

我得到的错误是:test.go:85:无法在多次赋值中将[]字节分配给z(类型字符串)

有任何帮助吗? (这是我第一次在Go编码)

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以将[]byte转换为字符串,但不能转换多个返回值函数的一个值。

buf, err := ioutil.ReadFile(z)
if err != nil {
        log.Fatal(err)
}
z = string(buf)

但是,通常最好将二进制数据转换为字符串并直接使用buf