我有嵌套的方法调用。在嵌套方法调用期间,将在某个时刻创建一个值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
但是,它似乎不太优雅。还有其他想法吗?
答案 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