참조 충돌이라는 말은 내가 지어낸거고

가변참조와 불변참조 둘다 만들었다고 컴파일 에러가 나는데

이걸 해결하는 방법이 궁금함


러스트로 DFS 구현해보는데 이미 방문한 노드를 mark에 true로 표시함

코드는 다음과 같은데




연결된 노드 중에 아직 방문하지 않은 노드만 골라서 재귀호출하려고 하니깐

filter의 closure에서 mark가 불변참조로 대여되고

for_each의 closure에서 mark가 가변참조로 대여된다고 컴파일 에러가 남





이렇게 for_each만 쓰고 if문 박는 방법으로 해결은 되는데

filter, for_each 둘다 써서는 어떻게 해서도 안되는 거?

트릭같은게 있는지 궁금해서 질문글 써 봄


p.s. filter_map 같은게 있긴하던데 이거쓰면 Some으로 래핑해야 하는게 몹시 나이꼬와서

안쓰고 싶은데 rust에선 어떻게 짜는게 conventional함?