Thuộc tính @autoclosure của Swift cho phép bạn xác định một đối số tự động được bao bọc trong một closure.
Nó chủ yếu được sử dụng để trì hoãn việc thực thi một biểu thức (có thể tốn kém) đến khi nó thực sự cần thiết thay vì thực hiện nó trực tiếp khi đối số được chuyển qua.
Như một ví dụ sử dụng, hãy coi biểu thức điều kiện được truyền làm tham số đầu tiên cho đến khi nó tự động gói lại thành một biểu thức closure và có thể được gọi mỗi lần quanh vòng lặp:
func until<L: LogicValue>(pred: @auto_closure ()->L, block: ()->()) {
while !pred() {
block()
}
}
// doSomething until condition becomes true
until(condition) {
doSomething()
}