为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
萧十郎 2022-01-04 10:19:16
如果我在我的main()函数中创建了一个文件:output, err := os.Create("D:\\output.txt")我希望程序中另一个函数打印的所有内容都使用以下命令放入该文件中:output.WriteString(str)我怎么能传递一个指向该文件的指针,以便函数可以写入它?另外,有没有其他方法可以将字符串写入文件,或者WriteString是否足够?
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

让您的函数使用*类型修饰符将指针作为参数,并按原样传递文件对象,因为 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")


查看完整回答
反对 回复 2022-01-04
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

只需定义一个可以将*File指针作为参数的函数:


func Write(output *os.File) {

 (...)

}


Write(&output) //call function.

}


此外,您可能希望使用以下方法确保最终关闭文件:


defer output.Close()


查看完整回答
反对 回复 2022-01-04
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

使用这样的界面io.Writer是要走的路。Go 中的许多类型io.Writer通过拥有一个Write方法来实现公正。os.File是其中一种。


查看完整回答
反对 回复 2022-01-04
  • 3 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信