Я не знаю, как точно это сказать, но я пытаюсь определить многие переменные, а затем переопределить их без перезаписи каждой из многих переменных и создания избыточного кода в каждом новом блоке, который я пишу. Переменные определяют элементы массива из нескольких баз данных. Вот сокращенных пример того, что я работаю с:Ruby: (re) определяющие переменные из другого блока/метода?
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