【发布时间】:2021-09-27 02:38:12
【问题描述】:
如果给出了文件名,我试图将文件设置为输入,如果没有给出文件名,则使用标准输入。我会认为这是这样做的方法:
var input io.Reader
if filename == "" {
input = os.Stdin
} else {
input, err = os.Open(filename)
if err != nil {
log.Fatalf("failed to open file: %v", err)
}
}
传递给input 的函数需要符合io.Reader 接口的东西,并且表现良好。也就是上面的作品……
在我想办法关闭input 之前,它一直有效。尽管 os.Stdin 和 os.Open 都返回了这两个东西(当然,关闭 stdin 可能没有多大意义,但它是无害的)。编译器不知道创建input 的两种方式都会给我一些实现Close() 的东西。所以我想知道有没有办法告诉编译器Close() 是为input 实现的。
【问题讨论】:
标签: go