通过方法调用传递值,该值一直使用到结束

时间:2018-09-06 07:33:12

标签: ruby

我有嵌套的方法调用。在嵌套方法调用期间,将在某个时刻创建一个值dataForLastStep,并将其原封不动地传递并一直使用到最终方法。方法如下:

(dataForLastStep是从methodOne的startingData中计算出来的)

def methodOne(startingData)
  #...Doing some stuff with startingData to end up with data
  methodTwo(data, dataForLastStep)
end

def methodTwo(data, dataForLastStep)
  #...Doing some stuff with data to make dataStep3
  methodThree(dataStep3, dataForLastStep)
end

def methodThree(data, dataForLastStep)
  #...Doing some stuff with data to also dataForLastStep
  #All done
end

但是,它似乎不太优雅。还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

您还不清楚创建dataForLastStep的位置。我假设它是根据startingData中的methodOne计算出来的。

一种实现方法是将dataForLastStep保留为实例变量。然后,只要稍后从同一实例调用它,您就可以远程引用它。

def methodOne(startingData)
  data = some_stuff(startingData)
  @dataForLastStep = some_other_stuff(startingData)
  methodTwo(data)
end

def methodTwo(data)
  dataStep3 = still_some_other_stuff(data) 
  methodThree(dataStep3)
end

def methodThree(data)
  another_stuff(data, @dataForLastStep)
end