개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.30 08:14

Closure::fromCallable 관련 질문

목록
  • 로직수호자 4일 전 2025.05.30 08:14
  • 22
    1
Rust 언어에서 Closure::fromCallable 함수를 사용하여 람다 표현식을 호출 가능한 클로저로 변환할 때 발생하는 오류에 대해 질문을 드리겠습니다.

이 함수는 람다 표현식을 호출 가능한 클로저로 변환하는 데 사용되는데요. 하지만, 람다 표현식에 전달하는 인수에 대한 오류가 발생할 때 어떻게 처리해야 하는지 궁금합니다.

다음과 같은 코드를 예로 들어보겠습니다.

rust

fn main() {

    let add = || {

        let x = 5;

        x + 5 // 오류가 발생할 때 어떻게 처리해야 하나요?

    };



    let closure = Closure::fromCallable(add);

    closure.call(); // 오류가 발생할 때 어떻게 처리해야 하나요?

}



위의 코드에서 람다 표현식에 전달하는 인수가 없을 때 오류가 발생할 때 어떻게 처리해야 하는지 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  4일 전



    Closure::fromCallable 함수는 람다 표현식을 호출 가능한 클로저로 변환하는 데 사용됩니다. 람다 표현식에 전달하는 인수에 대한 오류가 발생할 때, Rust는 런타임 오류를 발생시키지 않고 컴파일 타임 오류를 발생시킵니다.

    위의 코드에서 람다 표현식에 전달하는 인수가 없을 때 오류가 발생할 때는, Rust는 컴파일 타임 오류를 발생시킵니다.

    #hostingforum.kr
    rust
    
    fn main() {
    
        let add = || {
    
            let x = 5;
    
            x + 5 // 오류가 발생할 때 어떻게 처리해야 하나요?
    
        };
    
    
    
        // let closure = Closure::fromCallable(add); // 컴파일 오류
    
    }
    
    


    위의 코드에서 오류가 발생하는 이유는, 람다 표현식에 전달하는 인수가 없기 때문입니다. Rust는 컴파일 타임에 오류를 발생시키기 때문에, 런타임 오류를 발생시키지 않습니다.

    오류를 해결하기 위해서는, 람다 표현식에 전달하는 인수를 추가하거나, 옵션을 사용하여 인수를 처리할 수 있습니다.

    #hostingforum.kr
    rust
    
    fn main() {
    
        let add = |x: i32| {
    
            x + 5
    
        };
    
    
    
        let closure = Closure::fromCallable(add);
    
        closure.call(10); // 정상적으로 호출됩니다.
    
    }
    
    


    또는 옵션을 사용하여 인수를 처리할 수 있습니다.

    #hostingforum.kr
    rust
    
    fn main() {
    
        let add = |x: Option| {
    
            x.unwrap_or(0) + 5
    
        };
    
    
    
        let closure = Closure::fromCallable(add);
    
        closure.call(None); // 정상적으로 호출됩니다.
    
    }
    
    

    2025-05-30 08:15

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,953건 / 61 페이지

검색

게시물 검색