توابع Variadic در سوئیفت

مقدمه

در این مقاله قرار هست توضیح بدیم که این گونه از توابع چگونه عمل میکنند


شروع

بعضی از توابع variadic هستند به این معنی که میتوانند یک پارامتر میتواند بینهایت پارامتر از جنس خود را بپذیرد

یک مثال : دقیقا مشابه تابع print که شما هر چند تا پارامتر داشته باشید میتونید بهش پاس بدید و آنها را با با comma ( , ) جدا میکنید و آن هم برای شما هر کدام را با فاصله چاپ میکند

به کد زیر توجه کنید

print(&quothello&quot,&quotIm here&quot,&quotGames&quot)

خروجی کد بالا

hello im here Games


اما ما چطور میتوانیم همچین کاری انجام دهیم

یک راه بیسیک وجود دارد ، که پارامتر تابع یک آرایه بگیرید( که رفتار حرفه ای نیست )

اما راه دوم استفاده از مدل نوشتاری ...Type مثلا ...String . خب String یک رشته میگیرد اما ...String میتواند چند رشته بگیرد، شاید هزاران رشته !!

پارامتر Variadic را سوئیفت به یک آرایه تبدیل میکند و شما میتوانید در آن Iterate یا همان پیمایش کنید

حالا بیاید تابعی با پارامتر Variadic بسازیم

func square(numbers: Int...) {
    for number in numbers {
    print(&quot\(number) squared is \(number * number)&quot)
       }
}

پارامتر number در اینجا میتواند بیش از یک پارامتر بگیرد

در داخل بدنه تابع یک حلقه وجود دارد که در numbers پیمایش میکند و آن را به توان دو میرساند و در آخر چاپ میکند

نحوه ورودی دادن به اینگونه توابع

square(numbers: 1, 2, 3, 4, 5)

خروجی

1 squared is 1
2 squared is 4
3 squared is 9
4 squared is 16
5 squared is 25


فراموش نکنید ورودی ها را با comma جدا کنید


پایان