Closures
클로져에 대해 알아보는 시간이다. 클로져는 무엇일까? 모던 언어에서는 클로져를 종종 볼 수 있다. 먼저 예제를 통해 클로져를 알아보자.
fn main() {
let x = 3;
// () 대신 || 사용.
// 구문이 한 줄이라 {} 생략 가능.
// 아래 클로져에서 x 는 캡쳐되어 사용 가능.
let closure = | val:i32 | val + x ;
println!(" closure fn : {}", closure(3));
}
- input value를 사용하기 위해
()
대신||
을 사용한다. {}
구문 부분에서 생략 가능, 하지만 구문이 한줄이 아니라면{}
사용한다.- 클로져를 사용 시에는 다른 변수를 사용할 수 있다. Capturing 이라고 표현.