我不知道该怎么说,但我正在尝试定义许多变量,然后重新定义它们而不重写每一个变量,并在每个新块中创建冗余代码。这些变量定义了来自多个数据库的数组元素。这里是我正在使用的一个缩小的示例:Ruby:(重新)从另一个块/方法定义变量?
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...)
但这会使一样多乱作为两个块定义两次,每次变量。对于这种情况,简单干燥的方法是什么? 如果我需要澄清我的问题中的任何内容,请让我知道,谢谢。
谢谢,需要这个工作完全。 – rubyuser1357796 2012-04-26 18:06:00