- 질문 게시판입니다.
Date 24/04/17 15:48:38수정됨
Name   T.Robin
Subject   Rust 프로그래밍: constructor 내부 closure에서 Self의 객체를 불러서 처리하기
Rust 도전 일주일차인 T.Robin입니다(아 응애에요).
대충 아래의 코드가 있습니다.



struct S1 {
    element1: AAA,
    element2: BBB,
}

impl S1 {
    pub fn new()->Self {
        let result = Self { element1: Element1::new(), element2: Element2::new() }
        // 뭔가 이것저것......

        result.element1.do_something( {
            let element1_weak_reference = result.element1.get_weak_reference().unwrap();
            move || {
                // 여기가 문제
                result.element2.do_something_else( element1_weak_reference.do_something() );
            }
        });

        // 완료
        result
    }
}



아마 눈치채셨겠지만, 이 코드는 빌드되지 않습니다. [//여기가 문제] 부분에서 result.element2가 closure 안쪽으로 이동해버려서, 마지막 "[//완료]" 부분에서는 result.element2가 아직 변수를 빌려준 상태로 남아있게 되어서 컴파일러가 투덜댑니다(요컨데, closure가 본문보다 더 오래 살아남을 수 있다....... 뭐 이런 내용입니다).

아예 unsafe 선언하고 C++ 스타일 raw pointer로 막무가내로 밀어부쳐 보기도 했습니다만 프로그램이 터지는걸 보면 이것도 답은 아닌 것 같습니다.
이 경우, 어떻게 처리해야 될까요?



0


목록
번호 제목 이름 날짜 조회 추천
16160 IT/컴퓨터노트북 추천 부탁드립니다. 8 OshiN 24/09/25 2258 0
16152 IT/컴퓨터블투 수신기문제에 대해 야얌 24/09/21 1745 0
16147 IT/컴퓨터터치 기능이 없는 블루투스 이어폰이 있을까요? 6 허락해주세요 24/09/17 2376 0
16126 IT/컴퓨터현재 상황에서 가장 가성비 있는 선택은 무엇일까요? (글카 vs. 글카+CPU vs. 새로 맞추기) 8 아란 24/09/06 2480 0
16119 IT/컴퓨터WIFI6 공유기 추천해주세요~ 3 Picard 24/09/04 2052 0
16107 IT/컴퓨터lg 그램 살까하는데. 5 reika 24/08/29 2080 1
16091 IT/컴퓨터핸드폰 케이스 잘 아시는 분 계신가요? 6 퍼그 24/08/21 2471 0
16077 IT/컴퓨터버티컬 마우스 추천 요청드립니다. 18 나루 24/08/14 2582 0
16053 IT/컴퓨터RIDI에 대한 이미지는 어떠신가요? 35 아재 24/08/06 3636 0
16049 IT/컴퓨터2만원 내외 가성비 템 추천 부탁드립니다. 12 Beemo 24/08/05 2381 0
16036 IT/컴퓨터맥북 중고 어케 파나요? 11 토비 24/07/30 2435 0
16020 IT/컴퓨터원드라이브 공유폴더 오류 1 허락해주세요 24/07/24 2321 0
16014 IT/컴퓨터nate.com 사이트 로그인이 안됩니다. (해결완료) 4 어제내린비 24/07/22 2861 1
16013 IT/컴퓨터노트북을 새로 구매했는데 화면이 밝고 형광색이 두드러집니다. 3 눈사람 24/07/21 2513 0
16004 IT/컴퓨터유튜브 영상 다운로드 5 오쇼 라즈니쉬 24/07/14 2689 1
15984 IT/컴퓨터워시타워 vs 일체형 8 은하꾸리 24/07/07 3214 0
15983 IT/컴퓨터크롬이 데이터를 너무 많이 잡아먹습니다. 4 whenyouinRome... 24/07/05 2746 0
15981 IT/컴퓨터스마트폰 유심칩 교체 ? 11 치즈케이크 24/07/04 2732 0
15978 IT/컴퓨터커뮤니티 사용을 줄이는 방법이 있을까요?? 20 데자뷰 24/07/03 3362 2
15976 IT/컴퓨터플립5 vs 6 8 Beemo 24/07/03 2461 0
15964 IT/컴퓨터카메라에 입문했는데,,, 절대 크롭센서는 사면 안되는 건가요...? 16 도리돌이 24/06/28 2708 0
15940 IT/컴퓨터요즘에 새 휴대폰 살려면 어디로 가야 하나요?(갤럭시 S24 계열) 13 호에로펜 24/06/18 3007 0
15935 IT/컴퓨터QHD 27인치 vs 32인치 모니터 9 방사능홍차 24/06/17 3056 0
15920 IT/컴퓨터유튜브 자막 효과 질문 13 푸르던 24/06/11 2513 0
15910 IT/컴퓨터하드 용량이 이상한 거 같아요. 4 moqq 24/06/07 2905 0
목록

+ : 최근 2시간내에 달린 댓글
+ : 최근 4시간내에 달린 댓글

댓글