본문으로 바로가기
COMMUNITY모든 이야기

면접 준비하면서 그래프 알고리즘을 Rust로 구현해보고 있는데, 노드 간의 참조를 처리하려고 Rc와 RefCell을 사용하고 있습니다.

코드:

use std::rc::Rc;
use std::cell::RefCell;

struct Node {
    value: i32,
}

fn main() {
    let node = Rc::new(RefCell::new(Node { value: 10 }));
    let borrowed = node.borrow();
    
    let mut borrowed_mut = node.borrow_mut();
    println!("{}", borrowed_mut.value);
}

오류: thread 'main' panicked at 'already borrowed: BorrowMutError'

시도: RefCell 문서를 읽어보았고, 변수 이름을 바꿔보기도 했지만 여전히 같은 에러가 납니다.

질문: 코드상에서 borrow()와 borrow_mut()를 동시에 호출하면 왜 런타임 에러가 발생하는 건가요?

모든 이야기1496

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1496개의 이야기
댓글