public void ConvertMoves()
{
for (int i = 0; i < maxDirections; i++)
{
Debug.Log("gimme tsMoves "+tSpossibleMoves[i].Count + " from " + this);
possibleAttacks[i] = tSpossibleAttacks[i];
possibleAttacksInactive[i] = tSpossibleAttacksInactive[i];
possibleAttackIndicators[i] = tSpossibleAttackIndicators[i];
possibleMoves[i] = tSpossibleMoves[i];
Debug.Log("Gimme moves(1) " + possibleMoves[i].Count + " from " + this);
}
for (int i = 0; i < maxDirections; i++)
{
tSpossibleAttacks[i].Clear();
tSpossibleAttacksInactive[i].Clear();
tSpossibleAttackIndicators[i].Clear();
tSpossibleMoves[i].Clear();
Debug.Log("Gimme moves(2) " + possibleMoves[i].Count + " from " + this);
}
}
Run Code Online (Sandbox Code Playgroud)
所以调试日志报告以下内容:
gimme tsMoves 2来自JeanArc(克隆)(JeanArc)
Gimme移动(1)2来自JeanArc(克隆)(JeanArc)
一切都很好,但后来...... …
magnitude :: Floating a => [a] -> a
magnitude = sqrt . mag
where mag [] = 0
mag (x:xs) = x^2 + mag xs
Run Code Online (Sandbox Code Playgroud)
这应该对列表中的每个元素进行平方,然后取它们的总和,然后取平方根。很公平,但是当它只将 x 添加到列表 xs 时,这个递归函数是如何工作的?