Kotlin Default and Named Arguments: The Power of Flexibility 🚀

 

Kotlin Default and Named Arguments: The Power of Flexibility 🚀

Imagine ordering a burger 🍔 at a restaurant.

  • Scenario 1: You order a burger without specifying anything, and you get a default cheeseburger. 🧀🍔
  • Scenario 2: You order a burger but customize it, saying "No cheese, extra lettuce, and spicy sauce." 🌶️🥬

That’s exactly how default and named arguments work in Kotlin!

  • Default arguments → Provide a predefined value if no input is given.
  • Named arguments → Allow you to specify values by name, in any order.

📌 In this blog, we’ll explore:

✅ Default Arguments in Kotlin ✨
✅ Named Arguments for better clarity 🏷️
✅ Combining Both for maximum flexibility 🔄


1️⃣ Default Arguments: The Smart Defaults 🎯

In Kotlin, function parameters can have default values. If a function call doesn’t provide a value, Kotlin uses the default instead!

🔹 Basic Example: Default Name

fun greet(name: String = "Guest") {
    println("Hello, $name!")
}

greet()        // Output: Hello, Guest!
greet("Alice") // Output: Hello, Alice!

✅ If no name is provided, it defaults to "Guest"!


🔹 Example: Calculating Discount 🏷️

Let’s say we have a function that calculates price after a discount:

fun calculatePrice(price: Double, discount: Double = 10.0): Double {
    return price - (price * discount / 100)
}

println(calculatePrice(100.0))         // Output: 90.0 (Default 10% discount)
println(calculatePrice(100.0, 20.0))   // Output: 80.0 (Custom 20% discount)

📌 If no discount is provided, it defaults to 10%!


2️⃣ Named Arguments: Clarity and Flexibility 🏷️

With named arguments, we can specify values using their parameter names, instead of relying on the order of arguments.

🔹 Example: Named Arguments in Action 🚀

fun displayInfo(name: String, age: Int, city: String) {
    println("$name is $age years old and lives in $city.")
}

// Calling with named arguments (order doesn't matter)
displayInfo(age = 30, name = "Bob", city = "New York")

📌 Output:

Bob is 30 years old and lives in New York.

✅ We changed the order, but Kotlin still understands the parameters!


3️⃣ Combining Default & Named Arguments 🔄

We can mix both default and named arguments for maximum flexibility.

🔹 Example: Customizing a Coffee Order ☕

fun orderCoffee(size: String = "Medium", sugar: Int = 2, milk: Boolean = true) {
    println("Order: $size coffee with $sugar sugar(s) and ${if (milk) "milk" else "no milk"}.")
}

// Different ways to order:
orderCoffee()                                  // Default: Medium coffee with 2 sugars and milk
orderCoffee(size = "Large")                    // Large coffee with default sugar and milk
orderCoffee(sugar = 1, milk = false)           // Medium coffee with 1 sugar, no milk
orderCoffee(size = "Small", milk = false)      // Small coffee with default sugar, no milk

📌 Output:

Order: Medium coffee with 2 sugar(s) and milk.
Order: Large coffee with 2 sugar(s) and milk.
Order: Medium coffee with 1 sugar(s) and no milk.
Order: Small coffee with 2 sugar(s) and no milk.

Flexible ordering with defaults and named arguments!


4️⃣ Real-World Use Cases 🌍

🔹 Default arguments → Great for providing fallback values.
🔹 Named arguments → Useful for functions with many parameters.

📌 Example: Sending Email Notifications 📩

fun sendEmail(to: String, subject: String = "No Subject", message: String = "Hello!") {
    println("Sending email to $to\nSubject: $subject\nMessage: $message\n")
}

// Sending emails with different levels of customization:
sendEmail("alice@example.com")  
sendEmail("bob@example.com", "Meeting Update")  
sendEmail(to = "charlie@example.com", message = "Happy Birthday!")  

📌 Output:

Sending email to alice@example.com
Subject: No Subject
Message: Hello!

Sending email to bob@example.com
Subject: Meeting Update
Message: Hello!

Sending email to charlie@example.com
Subject: No Subject
Message: Happy Birthday!

Flexible email sending without needing to pass all arguments every time!


🔟 Conclusion: Kotlin Gives You Superpowers! 🚀

Default arguments make functions more flexible and reduce unnecessary function calls.
Named arguments improve code readability and remove dependency on argument order.
Combining both makes Kotlin functions powerful and customizable!

Now, go ahead and experiment with default and named arguments in your Kotlin projects! 🎯

💬 Which feature do you find most useful? Let me know in the comments! ⬇️😊

Thanks a lot for query or your valuable suggestions related to the topic.

Previous Post Next Post

Contact Form