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


목록
번호 제목 이름 날짜 조회 추천
10687 기타임대 계약 만료 후 보증금을 받지 못했는데 3 syzygii 20/12/22 5671 0
11617 기타유비가 이릉에서 꼬라박지 않았다면 삼국지가 나왔을까요? 9 syzygii 21/05/27 6133 0
12242 기타친구들과 만날때 돈 지출 어떻게하시나요? 13 syzygii 21/09/11 6101 1
12799 기타제가 너무 호구일까요? 16 syzygii 22/01/06 6270 1
13387 법률운전자가 설치물 파손시 어디까지 보상할까요? 1 syzygii 22/05/18 5071 0
13804 기타식당에서 종업원 뭐라고 부르시나여? 37 syzygii 22/08/29 6129 0
13925 여행후쿠오카 고인물들의 음식 추천 받습니다 15 syzygii 22/09/28 6714 0
14110 경제금융투자소득세 질문입니다(정치관련 syzygii 22/11/09 4583 0
2969 IT/컴퓨터국내 판매 스마트폰중 안드로이드 순정에 가장 가까운 전화기는? 11 T.Robin 17/06/28 4583 0
3051 의료/건강경동시장(서울약령시)에서 보약짓기 조언 부탁드립니다 7 T.Robin 17/07/14 13409 0
3646 의료/건강수원-보톡스 괜찮은 피부과? T.Robin 17/11/07 4725 0
3863 의료/건강대상포진 대응법 / 서울내 대상포진 전문병원? 9 T.Robin 17/12/18 13431 0
4469 IT/컴퓨터NFC(near field communication) 관련 자료를 찾고 있습니다 2 T.Robin 18/04/14 5541 0
4496 의료/건강당뇨식: 단백질 vs. 탄수화물 6 T.Robin 18/04/19 5234 0
6207 기타회사에서 읽을 수 있을만한 책을 찾습니다 30 T.Robin 19/01/02 5589 0
6841 경제NICE 평가정보 기술평가 결과 등급의 reputation 25 T.Robin 19/03/27 6005 0
6884 기타저녁 식사 추천받습니다 23 T.Robin 19/04/02 5175 0
9416 IT/컴퓨터JS와 Python 중 뭘 공부할까요? 48 T.Robin 20/05/15 8967 0
11410 기타자동차 타이어 교환은 어디서? 8 T.Robin 21/04/23 5955 0
11709 의료/건강과잉치 제거 대학병원 추천받습니다 5 T.Robin 21/06/11 6170 0
13174 IT/컴퓨터Ant Design vs. MUI Core 7 T.Robin 22/03/28 7062 0
13599 IT/컴퓨터React 및 Vue 한글 강의 추천해 주세요 22 T.Robin 22/07/07 6410 0
15118 IT/컴퓨터이동전화기 추천받습니다 31 T.Robin 23/08/09 4449 0
15774 IT/컴퓨터Rust 프로그래밍: constructor 내부 closure에서 Self의 객체를 불러서 처리하기 6 T.Robin 24/04/17 3252 0
16289 의료/건강아이에게 녹용 복용을 고려중입니다 15 T.Robin 24/11/15 2708 0
목록

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