Go 相当于 Python 的“tail -f”-Like Generator
Python 的“tail -f”功能可以方便地检索最后一个修改文件时的行。提出了类似功能的 Go 实现,并对其效率和惯用性质提出了担忧。
Go 实现
提供的 Go 实现利用通道和 goroutine持续监视文件中的新行。虽然这种方法很实用,但它引起了对其性能和对 Go 编码约定的遵守的担忧。
惯用的 Go 方法
为了与 Go 的设计原则保持一致,有一种替代方法建议使用阅读器的包装器,即 tailReader。该包装器引入了一个 Read 方法,该方法可以处理具有指定睡眠持续时间的 EOF。
通过创建 tailReader 实例并将其用作 io.Reader,可以使用各种函数和库来处理文件。例如:
此外,tailReader 方法简化了
优点
与 goroutine 方法相比,tailReader 具有以下几个优点:
因此,tailReader 方法为在 Go 中实现“tail -f”功能提供了更干净、更惯用的解决方案,解决了对性能和遵守编码约定的担忧。
以上是如何在 Go 中实现 Python 的“tail -f”功能:Goroutines 与 tailReader?的详细内容。更多信息请关注PHP中文网其他相关文章!