【发布时间】:2012-04-26 06:04:20
【问题描述】:
我不知道该怎么说,但我正在尝试定义许多变量,然后重新定义它们,而不需要重写许多变量中的每一个,并在我编写的每个新块中创建冗余代码。变量定义来自多个数据库的数组元素。这是我正在使用的缩小样本:
def lots_of_vars(array)
name = array[1]
membership = array[2]
spouse = array[3]
....
lap12 = array[36]
end
def second_block
#database1 => [ "Randy", true, "Nancy", 2, 17, false...
lots_of_vars(database1)
return unless membership
puts "Lap progress for #{name} and #{spouse}: #{lap1}, #{lap2}... #{lap12}..."
end
def third_block
#database2 => [ "Steven", true, nil, 0, 5, false...
lots_of_vars(database2)
return unless spouse.empty? or spouse.nil?
puts "Weekly progress for #{name}: #{lap1}, #{lap5}, #{lap6}, #{lap10}..."
end
第二个和第三个块需要从第一个块/方法定义的所有变量。但是我如何传递所有这些变量?我阅读的一个示例建议我将它们全部作为参数传递,例如:
def second_block(name, membership, spouse...)
但这会造成与在两个块中定义每个变量两次一样多的混乱。处理这种情况的简单、干燥的方法是什么? 如果我需要澄清我的问题,请告诉我,谢谢。
【问题讨论】:
标签: ruby