我发现自己在Ruby中使用的常见模式如下:
foo = foos.find {|foo| foo.attribute == some_other_attribute }
在检查阴影的IDE中,该行抱怨foo
被遮蔽。
诱人的选择如下:
foo = foos.find {|f| f.attribute == some_other_attribute }
但是这种方法打破了许多IDE中的搜索功能 - 在复杂的块中搜索f
将是一场噩梦,在项目中搜索foo.attributes
将错过这行代码。< / p>
我所倾向的丑陋解决方案只是在变量名前加上其范围:
foo = foo.find {|block_foo| block_foo.attribute == some_other_attribute }
虽然这对于短块来说很好,但是任何更长的时间都会从所有block_
污染代码的行为中产生大量噪音。
是否有标准的Ruby方式进行此类分配?具体来说,我正在寻找符合以下标准的解决方案:
答案 0 :(得分:3)
我更希望左侧的变量更具描述性:
blue_box = boxes.find { |box| box.color == BLUE }
即使像found_foo
那样更通用的东西,我也会认为它更具描述性。