如何将文件指针传递给不同的函数

如果我在我的main()函数中创建了一个文件:

output, err := os.Create("D:\\output.txt")

我希望程序中另一个函数打印的所有内容都使用以下命令放入该文件中:

output.WriteString(str)

我怎么能传递一个指向该文件的指针,以便函数可以写入它?另外,有没有其他方法可以将字符串写入文件,或者WriteString是否足够?


萧十郎
浏览 115回答 3
3回答

收到一只叮咚

让您的函数使用*类型修饰符将指针作为参数,并按原样传递文件对象,因为 os.Create 已经返回一个指针:func WriteStringToFile(f *os.File) {    n, err := f.WriteString("foobar")}// ..output, err := os.Create("D:\\output.txt")WriteStringToFile(output)另外,请注意不要忽略错误是一个好习惯。可以通过几种不同的方式将字符串写入文件,特别是如果您想避免os.File直接使用对象,而只使用 io.Writer 接口。例如:fmt.Fprint(output, "foo bar")

30秒到达战场

只需定义一个可以将*File指针作为参数的函数:func Write(output *os.File) { (...)}Write(&output) //call function.}此外,您可能希望使用以下方法确保最终关闭文件:defer output.Close()

江户川乱折腾

使用这样的界面io.Writer是要走的路。Go 中的许多类型io.Writer通过拥有一个Write方法来实现公正。os.File是其中一种。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go