توابع (Swift Functions)
«تابع (Function)» یک قطعه کد تکرارپذیر است. یعنی یک بار می نویسی و چند بار استفاده می کنی. در توابع سوئیفت، ورودی ها «پارامتر (Parameter)» هستند و خروجی «مقدار بازگشتی (Return Value)» است. این کار مثل ساخت دکمه در بازی است؛ هر بار می زنی، همان کار را انجام می دهد.
تعریف و فراخوانی تابع
با func یک تابع می سازیم. نام می دهیم، پارامتر می گیریم، و مقدار برمی گردانیم. «فراخوانی» یعنی اجرای تابع با ورودی مناسب.
func greet(name: String) -> String {
return "Hello, \(name)!";
}
print(greet(name: "Swift"));
نکته: نوع خروجی بعد از -> می آید. اگر خروجی ندارید، Void است.
پارامترها و مقدار بازگشتی
می توانیم چند پارامتر داشته باشیم. برچسب بیرونی پارامتر در محل فراخوانی دیده می شود. با _ می توانیم برچسب را حذف کنیم.
func add(_ a: Int, _ b: Int) -> Int {
return a + b;
}
print(add(2, 3));
نکته: حذف برچسب ها نوشتن تابع را کوتاه می کند؛ اما خوانایی را بسنج.
inout، مقدار پیش فرض، و واریادیک
با inout خود متغیر تغییر می کند. مقدار پیش فرض، پارامتر را اختیاری می کند. واریادیک یعنی «تعداد نامحدود آرگومان».
func increment(_ value: inout Int, by step: Int = 1) {
value += step;
}
var x = 10;
increment(&x);
print(x);
func sum(_ nums: Int...) -> Int {
return nums.reduce(0, +);
}
print(sum(1, 2, 3));
هشدار: برای inout باید از نشانه & هنگام ارسال آرگومان استفاده کنی.
مسیر مطالعه مرتبط
پس از توابع، سراغ آپشنال ها برو. چون خروجی تابع می تواند خالی باشد. همچنین، برای کار با مجموعه ها، پروتکل های کالکشن را ببین.
برای مرور کلی «توابع سوئیفت»، همین صفحه مرجع توست.
تمرین گام به گام با توابع سوئیفت
- یک تابع برای محاسبه نمره میانگین بنویس.
- برچسب ها را یک بار حذف کن و تفاوت را ببین.
- برای گام های مختلف، پارامتر پیش فرض بساز.
- با ورودی واریادیک، مجموع چند نمره را حساب کن.
نکته: هر بخش کد را جدا تست کن تا خطاها ساده تر شوند.
جمع بندی سریع
- توابع سوئیفت، کد را قابل استفاده دوباره می کنند.
- برچسب پارامتر خوانایی را هدایت می کند.
inoutخود متغیر را تغییر می دهد.- مقدار پیش فرض، آرگومان را اختیاری می کند.
- واریادیک چند ورودی را یک جا می گیرد.