- 질문 게시판입니다.
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


목록
번호 제목 이름 날짜 조회 추천
15774 IT/컴퓨터Rust 프로그래밍: constructor 내부 closure에서 Self의 객체를 불러서 처리하기 6 T.Robin 24/04/17 1041 0
15773 게임닌텐도 타이틀 추천 부탁드립니다 :) 13 Broccoli 24/04/17 1046 0
15772 여행위탁수화물 물건 중 빼야되는 것을 골라주세요 6 DogSound-_-* 24/04/16 1257 0
15771 IT/컴퓨터요즘은 타자 연습 뭘로 할까요? 11 토비 24/04/16 1224 0
15770 IT/컴퓨터모바일에서 보기 편한 스프레드시트? 4 메존일각 24/04/16 1091 0
15769 가정/육아마누라 핸드폰 사용한지가 4년이 넘었읍니다. 24 허윤진남편 24/04/16 1697 0
15768 문화/예술서울 교보문고 괜찮은 지점 16 마우스노동러 24/04/15 1651 0
15767 기타화장실 제품 (변기,소변기,세면대) 고오급 브랜드?? 10 Groot 24/04/15 1348 0
15765 가정/육아어머니 생일 선물... 무엇이 좋을까요? 8 휴리스틱 24/04/15 1182 0
15764 법률빌려준 돈 이자 계산 3 [익명] 24/04/15 1668 0
15763 과학지구상의 모든 생명체는 산소를 필요로 하는지요...? 6 홍당무 24/04/14 1646 0
15762 문화/예술색소폰을 사려면 어떻게 해야할까요?? 4 유아 24/04/14 1221 0
15761 IT/컴퓨터제가 운영하는 웹사이트에 error_log 파일이 쌓이고 있는데 도움부탁드립니다. 4 스톤위키 24/04/13 1314 0
15760 의료/건강독세핀염산염 부작용 질문드립니다. 3 [익명] 24/04/12 1250 0
15759 여행혹시 마산합포구 쪽에 차돌박이 잘하는데 있을까요? 허윤진남편 24/04/12 1002 0
15758 기타이 식물 이름이 무엇일까요? 2 아재 24/04/12 1257 0
15757 IT/컴퓨터TV로 파일 영상을 잘 보려면? 1 2024 24/04/11 950 0
15756 의료/건강녹내장에 관해 잘 아시는분 계실까요? 1 어둠달골짜기 24/04/11 1225 0
15755 IT/컴퓨터알뜰폰 쓰는 사람이 해외여행갈때 어떻게 하면 좋을지요? 6 Broccoli 24/04/11 1529 0
15754 가정/육아야외 빨래건조 어떻게 해야 하나요? 13 [익명] 24/04/10 1547 0
15753 기타소비 패턴 질문입니다 17 [익명] 24/04/09 1324 0
15752 IT/컴퓨터안드로이드 TV에서 DVD 파일 재생 4 OshiN 24/04/08 1237 0
15751 기타개를 유모차에 넣고 다니는 이유가 궁금합니다 7 아이캔플라이 24/04/08 1825 0
15750 기타자기 전까지의 시간을 어떻게 보내는게 건강할까요? 28 똘빼 24/04/07 1716 0
15749 기타도로에서 뒷차가 쾅 박았습니다. 18 바방구 24/04/07 1663 0
목록

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

댓글