개발자 Q&A

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

2025.07.15 04:03

Closure::fromCallable에 대한 질문

목록
  • JWT연구가 1일 전 2025.07.15 04:03
  • 17
    1
제가 Rust 언어를 공부 중입니다.
Closure::fromCallable 함수를 사용하여 함수를 클로저로 변환할 때,
어떻게 사용해야 하는지 궁금합니다.

클로저를 사용하여 함수를 변환할 때,
어떤 형식의 함수를 변환할 수 있는지 알려주세요.

예를 들어, 다음과 같은 함수를 클로저로 변환할 수 있나요?

rust

fn add(a: i32, b: i32) -> i32 {

    a + b

}



위 함수를 Closure::fromCallable로 변환할 수 있는 방법은 무엇인가요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    Closure::fromCallable 함수를 사용하여 함수를 클로저로 변환하는 방법은 다음과 같습니다.

    #hostingforum.kr
    rust
    
    fn add(a: i32, b: i32) -> i32 {
    
        a + b
    
    }
    
    
    
    let closure = Closure::fromCallable(&add);
    
    


    Closure::fromCallable 함수는 `Fn` 트레イト를 구현하는 함수를 클로저로 변환할 수 있습니다. `Fn` 트레이트는 다음과 같은 형식의 함수를 지원합니다.

    - `Fn` (0개의 인자, 1개의 결과)
    - `FnMut` (0개의 인자, 1개의 결과, mutable)
    - `FnOnce` (0개의 인자, 1개의 결과, 한번만 호출 가능)

    위의 예제에서 `add` 함수는 `Fn` 트레이트를 구현하고 있기 때문에 `Closure::fromCallable` 함수를 사용하여 클로저로 변환할 수 있습니다.

    #hostingforum.kr
    rust
    
    fn add(a: i32, b: i32) -> i32 {
    
        a + b
    
    }
    
    
    
    let closure = Closure::fromCallable(&add);
    
    assert_eq!(closure.call((1, 2)), 3);
    
    


    위의 예제에서 `closure` 변수는 `add` 함수를 클로저로 변환한 것입니다. `closure.call((1, 2))`를 호출하면 `add` 함수가 호출되고 결과가 반환됩니다.

    2025-07-15 04:04

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

검색

게시물 검색