- 강의 질문
- 개발/데이터
코드에 궁금한 점이 있어요. 꼭 답해 주세요. AI도 답을 못해요. 비록 온라인 강의지만 이 정도 지원은 가능할 거라 생각합니다.
파트 6 뱀서라이크 ch 06-03중에 다음 코드가 있어요
switch(lSkillData.ActiveType)
{
case SkillActiveType.Manual:
{
int lFindIndex = -1;
int lCurrentIndex = 0;
foreach(var EachSkill in CurrentManualSkillDatas)
{
if(EachSkill.Type == InSkillType)
{
lFindIndex = lCurrentIndex;
}
lCurrentIndex++;
}
if(lFindIndex >= 0)
{
CurrentManualSkillDatas[lFindIndex] = CurrentActiveSkillDatas[InSkillType];
}
else
{
CurrentManualSkillDatas.Add(CurrentActiveSkillDatas[InSkillType]);
}
}
}
break;
}
만약 CurrentManualSkillDatas 리스트에 객체가 3개만 있다고 할 경우 foreach가 모두 실행되었을 때 lFindIndex는 2가 되죠. 그리고 lFindIndex는 0보다 크니까 리스트에 있는 제일 마지막 객체 CurrentManualSkillDatas[2]만 값이 수정되고 앞에 있는 나머지 2개는 수정되지 않는데 의도한 겁니까? 아니면 리스트에 하나만 넣고 그 하나만 계속 갱신하겠다는 뜻인가요? AI도 코딩 의도를 모르겠다고 하니 꼭 답해주세요. 이 정도는 지원해 줄 수 있죠?
AI가 말하는 원리는 잘 알고 있는데 위에서 말한 마지막 객체만 수정되고 앞에 있는 객체들은 수정되지 않도록 일부러 의도한 것인지 리스트에 하나만 넣고 그 하나만 계속 갱신하겠다는 것인지 강사나 경영진 아시는 분은 설명해 주세요.