
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