2
我在脑海里有一个小问题。我在互联网上进行了研究,但没有人提供确切的答案。我的问题是:在数据流覆盖中,是否返回一个变量使用它?
在数据流覆盖标准中,假设有一种方法最终返回变量x
。在为该方法绘制图表时,是否认为该回复语句使用x
?
我在脑海里有一个小问题。我在互联网上进行了研究,但没有人提供确切的答案。我的问题是:在数据流覆盖中,是否返回一个变量使用它?
在数据流覆盖标准中,假设有一种方法最终返回变量x
。在为该方法绘制图表时,是否认为该回复语句使用x
?
是的,return
语句使用它返回的值。我找不到一个权威的参考,在简单的英语这么说下去,但这里有两个参数:
一个return
声明通过从程序到另一个的一部分控制,就像一个方法调用一样。返回的值类似于函数参数。 return
因此就像是一个功能参数就是一种用途。
数据流分析的另一种用途是价值离开程序并对外界产生一些影响,例如通过打印。如果我们正在分析一种方法而不是整个程序,则return
会导致该值离开我们正在分析的范围。所以它的用途与印刷是一种用途相同。
我在假设外部世界将受其影响的情况下购买关于离开该程序的价值的观点。我不太确定我是否购买了关于退货价值的论点。想象一下,我想知道Y是否“包含数据流,并且我有一个声明”X:= Y“,但是没有任何地方使用X.我想你会同意Y没有被覆盖。这与“返回Y”有什么不同?真正的区别在于它不是那么明显,所以你必须做一个全局数据流分析来确定(我认为你应该)。 –
所以对我来说,“返回Y”的声明本身不应该是Y被使用的证据,我认为你应该看到返回值的使用(非常简单) –
总的来说,这是事实,但它是你在分析时玩的游戏一个孤立的方法 –