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


목록
번호 제목 이름 날짜 조회 추천
2969 IT/컴퓨터국내 판매 스마트폰중 안드로이드 순정에 가장 가까운 전화기는? 11 T.Robin 17/06/28 4557 0
3051 의료/건강경동시장(서울약령시)에서 보약짓기 조언 부탁드립니다 7 T.Robin 17/07/14 13200 0
3646 의료/건강수원-보톡스 괜찮은 피부과? T.Robin 17/11/07 4684 0
3863 의료/건강대상포진 대응법 / 서울내 대상포진 전문병원? 9 T.Robin 17/12/18 13349 0
4469 IT/컴퓨터NFC(near field communication) 관련 자료를 찾고 있습니다 2 T.Robin 18/04/14 5503 0
4496 의료/건강당뇨식: 단백질 vs. 탄수화물 6 T.Robin 18/04/19 5179 0
6207 기타회사에서 읽을 수 있을만한 책을 찾습니다 30 T.Robin 19/01/02 5491 0
6841 경제NICE 평가정보 기술평가 결과 등급의 reputation 25 T.Robin 19/03/27 5965 0
6884 기타저녁 식사 추천받습니다 23 T.Robin 19/04/02 5124 0
9416 IT/컴퓨터JS와 Python 중 뭘 공부할까요? 48 T.Robin 20/05/15 8853 0
11410 기타자동차 타이어 교환은 어디서? 8 T.Robin 21/04/23 5869 0
11709 의료/건강과잉치 제거 대학병원 추천받습니다 5 T.Robin 21/06/11 6060 0
13174 IT/컴퓨터Ant Design vs. MUI Core 7 T.Robin 22/03/28 6897 0
13599 IT/컴퓨터React 및 Vue 한글 강의 추천해 주세요 22 T.Robin 22/07/07 6286 0
15118 IT/컴퓨터이동전화기 추천받습니다 31 T.Robin 23/08/09 4288 0
15774 IT/컴퓨터Rust 프로그래밍: constructor 내부 closure에서 Self의 객체를 불러서 처리하기 6 T.Robin 24/04/17 3071 0
16289 의료/건강아이에게 녹용 복용을 고려중입니다 15 T.Robin 24/11/15 2545 0
16608 의료/건강혈당 측정되는 스마트워치 추천 부탁드립니다 8 T.Robin 25/03/12 3034 0
10899 의료/건강비타민 A 보충제 복용 관련 Taiga 21/01/25 4834 0
2848 법률이런 경우 사기로 고소가 가능한지요? 3 tannenbaum 17/06/01 4308 0
1709 IT/컴퓨터웹 페이지에 어떻게 음악 삽입하나요? 7 tannenbaum 16/10/31 3500 0
1758 문화/예술다음 사진에서 웹툰 캐릭터 몇개나 보이시나요? 24 tannenbaum 16/11/10 5672 0
1797 법률조건부 증여 질문입니다. 3 tannenbaum 16/11/20 3997 0
1814 IT/컴퓨터기프티콘 온게 있는데 다른 사람에게 줄 수 있나요? 가능하면 받으실분!!! 15 tannenbaum 16/11/24 5320 3
1845 의료/건강쌍방 폭행 진단서 질문인데요. 5 tannenbaum 16/11/30 8046 0
목록

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

댓글