【发布时间】:2020-05-27 10:09:17
【问题描述】:
我对 Golang 还很陌生,还不确定如何使用某些语言结构。目前我有以下代码(带有测试调试输出),它没有提供预期的结果:
json, _ := json.Marshal(struct)
fmt.Println(json)
f,_ := os.Create(fmt.Sprintf("/tmp/%s.json", "asd"))
i,_ := f.Write(json)
fmt.Println(i)
b, err := ioutil.ReadAll(f)
fmt.Print(b)
我期望以下行为:
- 将结构转换为字节数组
- 创建新文件
- 将字节数组附加到文件中
但是,当我在我的环境 (AWS Lambda) 中运行代码以及在 Golang Playground 中使用它时,该文件始终为空。 上述代码的输出如下所示:
[123 34 ... <hug array of bytes>]
1384
[]
这让我相信我没有正确使用f.Write(),尽管我遵循了包文档。所有其他输出都表明预期的行为,那么我的错误是什么?我在某种程度上受限于使用File 接口,否则我会选择ioutil.WriteFile()。我的假设是在某些时候对指针/值有误解,但编译器阻止了 &f 的使用。
【问题讨论】:
标签: go