لازمه که اگر مبحث تابع ها را فراموش کرده اید، قبل از خواندن این مقاله، مقاله ی تابع ها را مرور کنید.
Closure را میتوان به عنوان یک متغیر در نظر گرفت، که میتوان در آن کد ذخیره کرد. برای مثال شما در متغیر های از نوع String رشته میریزید. در Closure میتوانید چند خط کد قرار دهید.
از آن جایی که Closure ها درون خود چندین خط کد را ذخیره میکنند، میتوان آن ها را تا حدی شبیه به function ها در نظر گرفت.
تعریف closure ممکن است یک مقدار گمراه کننده باشد، برای همین با یک مثال بسیار ساده شروع میکنیم.
let closure = {
print("Hello World")
}
حال برای استفاده از closure بالا به این شکل عمل میکنیم:
closure()
خروجی:
Hello World
مثل تابع ها، در بعضی موارد نیاز داریم که متغیری را به کلوژر پاس دهیم، در اینصورت به روش زیر عمل میکنیم:
let message = { (name: String) in
print("my name is: \(name) ")
}
message("cristiano")
خروجی:
my name is cristiano
مثل تابع ها این امکان را داریم که بعد از انجام محاسبات مقداری را return
کنیم.
let kelvin = { (celsius: Double) -> (Double) in
let temp = celsius + 273
return temp
}
kelvin(100) // 373