مفهوم Closure در سوئیفت

زمان مطالعه : ۴ دقیقه
آخرین بروزرسانی : ۰۷ اسفند ۱۴۰۰
مفهوم closure در زبان برنامه نویسی سوئیفت و ارتباط آن با تابع ها

لازمه که اگر مبحث تابع ها را فراموش کرده اید، قبل از خواندن این مقاله، مقاله ی تابع ها را مرور کنید.

Closure چیست؟

Closure را میتوان به عنوان یک متغیر در نظر گرفت، که میتوان در آن کد ذخیره کرد. برای مثال شما در متغیر های از نوع String رشته میریزید. در Closure میتوانید چند خط کد قرار دهید.

از آن جایی که Closure ها درون خود چندین خط کد را ذخیره میکنند، میتوان آن ها را تا حدی شبیه به function ها در نظر گرفت.

تعریف Closure در Swift

تعریف closure ممکن است یک مقدار گمراه کننده باشد، برای همین با یک مثال بسیار ساده شروع میکنیم.

let closure = {
    print("Hello World")
}

حال برای استفاده از closure بالا به این شکل عمل میکنیم:

closure()

خروجی:

Hello World

تعریف Closure با پارامتر ورودی

مثل تابع ها، در بعضی موارد نیاز داریم که متغیری را به کلوژر پاس دهیم، در اینصورت به روش زیر عمل میکنیم:

let message = { (name: String) in
    print("my name is: \(name) ")
}
message("cristiano")

خروجی:

my name is cristiano

تعریف Closure با مقدار خروجی

مثل تابع ها این امکان را داریم که بعد از انجام محاسبات مقداری را return کنیم.

let kelvin = { (celsius: Double) -> (Double) in
    let temp = celsius + 273
    return temp
}
kelvin(100) // 373
توضیحات بیشتر:
  • در closure ها بر خلاف function ها، نیازی به نوشتن نام پارامتر ورودی نیست (موقع صدا زدن kelvin درون آن celsius: را ننوشتیم.)

این مقاله در حال بروز رسانی است و در آینده نزدیک مباحث جدید تری اضافه میشود...
میلاد خط شب
میلاد خط شب
معتقدم هر آدمی میتواند در یک زمینه ای مفید و تاثیر گذار باشد و اصولا آدم "غیر مفید" نداریم. فقط کافی است به موقع و صحیح راهنمایی شود.
پاسخ دهید


برخی از افرادی که این مقاله را پسندیدند 🥰

49