假设我想有一个应该的方法要么返回一个chan 或一个slice。例如,chan如果我想在新行出现时“跟随”一个文件,我需要一个,如果我只想读取和返回现有行,我需要一个切片。
在这两种情况下,我只需要遍历这个返回值。这是 Python 中的一个抽象示例(与文件无关,但显示了这个想法):
def get_iterable(self):
if self.some_flag:
return (x for x in self.some_iterable)
return [x for x in self.some_iterable]
def do_stuff(self):
items = self.get_iterable()
for item in items:
self.process(item)
现在,我在 Go 中很难做到这一点。我想我应该寻找类似“可迭代界面”的东西,我应该返回它,但我没有在谷歌上搜索一些现成的解决方案(对不起,如果这只是我糟糕的谷歌搜索技能)。
做我想做的最好的方法是什么?或者,也许整个设计对 Go 来说是“糟糕的”,我应该考虑其他事情吗?
SMILET
神不在的星期二
相关分类