小编Jef*_*erg的帖子

关闭可能是 os.Stdin 的 io.Reader

如果给出了文件名,我尝试将文件设置为输入;如果未给出文件名,则使用标准输入。我本以为这是这样做的方法:

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)
  }
}
Run Code Online (Sandbox Code Playgroud)

传递的函数input需要符合接口的东西io.Reader并且一切都表现良好。就是上面的作品...

它一直有效,直到我试图找到一种关闭方法input。尽管 os.Stdin 和 os.Open 返回了这两件事(当然,关闭 stdin 可能没有多大意义,但它是无害的)。编译器不知道这两种创建方式input都会给我一些实现 Close() 的东西。所以我想知道有没有一种方法可以告诉编译器是Close()input.

go

0
推荐指数
1
解决办法
3156
查看次数

标签 统计

go ×1