تابعها؛ کارگرهای مرتب و قابل اعتماد
هر کاری رو هی تکرار نکن؛ تابع بساز، صداش بزن، بقیهش با اون.
تابع ساده
تابع یعنی یه بستهی کوچک از منطق. اسم خوب براش بذار تا وقتی سه ماه بعد برگشتی، نفهمی خودت با خودت چی کار کردی.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
fun greet(name: String) {
println("سلام $name، خوش اومدی!")
}
fun main() {
greet("سارا")
}
سلام سارا، خوش اومدی!
تابع با خروجی
اگر تابع باید نتیجه بده، نوع خروجی رو بعد از پرانتز مینویسی. برای تابعهای کوتاه میتونی expression body بزنی؛ تمیز مثل ماشین تازه کارواش رفته.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
fun sum(a: Int, b: Int): Int {
return a + b
}
fun multiply(a: Int, b: Int) = a * b
خروجی مستقیم ندارد؛ اما sum(2, 3) مقدار 5 و multiply(2, 3) مقدار 6 برمیگرداند.
پارامتر پیشفرض و نامدار
کاتلین اجازه میده پارامتر پیشفرض بذاری و موقع صدا زدن اسم پارامتر رو هم بنویسی. این باعث میشه کد خواناتر شه، مخصوصاً وقتی تابع چندتا ورودی داره و مغزت نمیخواد شعبدهبازی کنه.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
fun createUser(name: String, role: String = "user", active: Boolean = true) {
println("$name / $role / $active")
}
fun main() {
createUser(name = "مهدی", active = false)
}
مهدی / user / false
نتیجه این درس 🎯
تابع یعنی یک کار مشخص را بستهبندی کنی و هرجا لازم شد صدا بزنی. از اینجا به بعد باید به جای کد تکراری، تابع تمیز بسازی.
تمرین! 🧠
تابعی بنویس که قیمت و درصد تخفیف را بگیرد و قیمت نهایی را برگرداند.
fun finalPrice(price: Double, discountPercent: Double): Double {
val discount = price * discountPercent / 100
return price - discount
}
fun main() {
println(finalPrice(500000.0, 20.0))
}
400000.0