Kotlin Extension Functions – মজার ভাষায় সহজ ব্যাখ্যা!
🚀 Kotlin Extension Functions – মজার ভাষায় সহজ ব্যাখ্যা! 🎉
📌 Extension Function মানে কী?
ভাবুন, আপনার কাছে একটা গাড়ি 🚗 আছে।
এখন আপনি চাইছেন, গাড়ির সাথে একটা নতুন ফিচার যোগ করতে (যেমন 🚀 "Turbo Mode")!
🔥 কিন্তু সমস্যা হলো –
গাড়িটা আপনার তৈরি না, তাই সরাসরি কোড এডিট করতে পারবেন না! 🤯
এখন আপনি কী করবেন?
👉 Extension Function ব্যবহার করবেন! 🎯
🚀 Extension Function কিভাবে কাজ করে?
Kotlin-এ আপনি বিদ্যমান ক্লাসে নতুন ফাংশন যোগ করতে পারেন
কিন্তু ইনহেরিটেন্স (extends) করা লাগবে না! 🎉
🛠️ ধরুন, আমাদের কাছে String আছে, আর আমরা চাই নতুন addEmoji() ফাংশন যোগ করতে!
fun String.addEmoji(): String {
return "$this 😎" // 'this' মানে এই String অবজেক্ট
}
এখন String অবজেক্ট যেকোনো জায়গায় এই ফাংশন ব্যবহার করতে পারবে! 🎯
📌 কিভাবে ব্যবহার করবো?
fun main() {
val message = "Hello Kotlin"
println(message.addEmoji()) // 👉 Output: Hello Kotlin 😎
}
✅ দেখুন! String ক্লাসে নতুন addEmoji() ফাংশন যোগ হয়ে গেলো! 🎉
🔄 আরেকটা মজার উদাহরণ – swap() ফাংশন (List-এর দুইটা আইটেম এক্সচেঞ্জ করা)
fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
val temp = this[index1] // 'this' মানে এই MutableList
this[index1] = this[index2]
this[index2] = temp
}
📌 কিভাবে ব্যবহার করবো?
fun main() {
val numbers = mutableListOf(1, 2, 3, 4)
numbers.swap(0, 2) // ✅ index 0 & 2 swap হবে!
println(numbers) // 👉 Output: [3, 2, 1, 4]
}
✅ এখন numbers.swap(0, 2) ব্যবহার করলেই সহজে দুই আইটেম এক্সচেঞ্জ হয়ে যাবে!
🚨 গুরুত্বপূর্ণ বিষয় – যদি ক্লাসের মধ্যে আগে থেকেই একই নামে মেথড থাকে?
Extension Function বিদ্যমান মেথড ওভাররাইড করতে পারে না!
Kotlin সবসময় অরিজিনাল মেথডকেই প্রথমে প্রাধান্য দেবে!
🔥 মানে যদি String ক্লাসের মধ্যে আগে থেকেই addEmoji() নামে মেথড থাকতো, তাহলে আমাদের এক্সটেনশন ফাংশন কাজ করতো না!
🎯 Extension Function কেন ব্যবহার করবেন?
✅ বিদ্যমান ক্লাসে নতুন ফিচার যোগ করা যায়, ইনহেরিটেন্স ছাড়াই!
✅ কোড ক্লিন, রিডেবল, ও ইজি টু মেইনটেইন হয়!
✅ Kotlin-এর শক্তিশালী ফিচারগুলোর মধ্যে এটি অন্যতম!
🔥 শেষ কথা – Kotlin Extension Functions শেখার পর, আপনি কোডকে সুপার পাওয়ার দিতে পারবেন! 🚀
💡 এখন আপনি যেকোনো ক্লাসে নিজের মতো করে নতুন ফাংশন যোগ করতে পারবেন! 🎉
Comments
Post a Comment