فهرست
1 - مقدمه
2 - مبانی کاتلین
3 - کد نویسی مقدماتی کاتلین
5.3 اضافه کردن پکیج ها در کاتلین و خلاصه بخش سوم
4 - توابع
2.4 تابع با پارامترهای پیشفرض و نامیده شده
3.4 تابع با پرامترهای نامحدود و خلاصه بخش چهارم
5 - کلاس ها
3.5 visibility modifier ها در کاتلین
6.5 Object ها در کاتلین و خلاصه بخش پنج
6 - ارث بری
2.6 کارکردن با کلاس های abstract در کاتلین
3.6 کلاس های interface در کاتلین
4.6 نگاه کوتاه به generic ها و خلاصه بخش شش
7 - کارکردن با Null ها
1.7 null safety و خلاصه بخش هفت
8 - نکات اضافه
7.8 annotation ها در کاتلین و خلاصه بخش هشت
9 - نگاه functionalای
4.9 عبارت های الحاقی در کاتلین و خلاصه بخش نهم
10 - قابلیت همکاری و Interoperability
2.10 صحبت کردن با جاوا از کاتلین
3.10 کار کردن با null ها از جاوا
4.10 صحبت کردن با کاتلین از جاوا
5.10 توابع و خصیصه های درجه اول
6.10 توابع الحاقی کاتلین از جاوا
7.10 همکاری با جاوا 7 و 8 و خلاصه بخش دهم
11 - کتابخانه استاندارد
1.11 کتابخانه استاندارد کاتلین و کارکردن با کالکشن ها در کاتلین
2.11 مرور کوتاه بر روی filtering و mapping و flatmapping در کاتلین
تابع با پرامترهای نامحدود و خلاصه بخش چهارم
اخرین بخشی که میخوایم در قسمت توابع به اون نگاه کنیم، پاس دادن تعداد نامشخص پارامتر های ورودی به تابعه. به عنوان مثال من میخوام تابعی رو تعریف کنم که قبل از این که از اون استفاده کنم، تعداد نامحدودی پارامتر ورودی قبول کنه.
fun printStrings(vararg strings:String){
for(string in strings){
println(string)
}
}
تابع بالا رو نگاه کنین، با استفاده از کلید واژه vararg این مفهوم رو به کامپایلر میدم که من میخوام تابعی رو استفاده کنم که تعداد ورودی هاش مشخص نیست ولی همه انها از جنس رشته هستند.
حالا من میتونم از این تابع استفاده کنم
printStrings("1")
printStrings("1","2")
printStrings("1","2","3")
و هر چه قدر که ورودی دلم بخواد به تابع پاس بدم.
فقط یک نکته اینجا هست، اگر من بخوام این vararg رو به یک تابع دیگه پاس بدم چه طور باید عمل کنم
fun printStrings(vararg strings:String){
realyPrintStirngs(*strings)
}
fun realyPrintStirngs(vararg strings: String) {
for (string in strings) {
println(string)
}
}
واقعیتش راه حل خیلی ساده است، باید یک تابع دیگه بسازیم که vararg بگیره ولی خود پارامتر vararg رو مستقیم به تابع پاس ندیم.مثلا در اینجا string رو مستقیم پاس ندیم بلکه با استفاده از “*” قبل نام پارامتر اونو پاس بدیم!
خلاصه بخش 4
1- توابع با استفاده از کلیدواژه fun ساخته میشوند
2- به صورت پیشفرص یک تابع تایپ Unit رو به عنوان پارامتر بازگشتی برمیگردونه
3- توی توابع به ما اجازه داده شده تا از
-
پارامتر های پیشفرص داشته باشیم
-
از پارامتر های نام دهی شده استفاده کنیم
-
و بی شمار ورودی برای یک تابعمون درنظر بگیریم