如何命名返回生成器的函数(即,使用yield foo
而不是return foo
)?返回生成器的函数的名称
- 绝对不是
getFoo()
,因为它没有返回Foo的值。 - 这可能不是
foos()
,因为我宁愿有一个易于区分的前缀。 - 它可能不完全是
listFoo()
,因为它不返回list
。 - 它可能不是
iterateFoo()
,因为这个前缀太长。
你最喜欢的解决方案是什么?
更新:
虽然foos()
可能在某些情况下完全很好的解决方案,注意方法的名称如何往往一开始就有一个动词。这个动词表达了这样一种想法:这是一种方法,而不是数据领域,因此有助于可读性。如果可能的话,我更喜欢一个解决方案,它可以很容易地从数据字段中告诉方法。
谁说前缀是好事? “foos”不完全清晰? – delnan 2012-01-27 19:58:39
一个想法:genFoo() – sgallen 2012-01-27 20:00:31
我与@delnan在这一个。 “foos”听起来不错。你如何命名一个可迭代的(例如一个列表)? – zrxq 2012-01-27 20:04:15