
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