Kotlin এ Lambda with Receiver 🧠💡 (ব্রেন-ফ্রেন্ডলি ব্যাখ্যা)

 


💭 প্রথমে, Lambda কী?

Lambda মানে হলো একটা ছোট্ট ফাংশন, যেটা কোনো নাম ছাড়া ব্যবহার করা যায়! সহজ কথায়, এটা এমন এক টুকরো কোড, যেটাকে আমরা ভেরিয়েবলের মতো পাস করতে পারি

উদাহরণ:

val greet = { name: String -> "Hello, $name!" }
println(greet("Alice")) // Output: Hello, Alice!

এখন Lambda with Receiver কীভাবে কাজ করে? চলুন সহজ ভাষায় দেখি!


Lambda with Receiver মানে কী? 🤔

ভাবুন, আপনার কাছে একটা হোয়াইটবোর্ড আছে। সাধারণত, আপনি বলবেন:

"হোয়াইটবোর্ড, নিজের উপর 'Hello' লিখো!"

কিন্তু Lambda with Receiver-এ আপনি হোয়াইটবোর্ডের ভূমিকায় চলে যান! 🪄
এখন আপনাকে আর "হোয়াইটবোর্ড" বলতে হবে না, সরাসরি লিখতে পারবেন!

কোড দেখে সহজে বুঝি! 👇

val whiteboard: StringBuilder.() -> Unit = { 
    this.append("Hello, Kotlin!")
}

এখানে কী হচ্ছে? 🧐

  • StringBuilder.() -> Unit মানে হলো এই ল্যাম্বডাটি শুধুমাত্র StringBuilder-এর সাথে কাজ করবে।

  • { } এর ভেতরে আমরা সরাসরি this দিয়ে StringBuilder-এর মেথড ব্যবহার করতে পারছি!


Lambda with Receiver কিভাবে ইউজ করবো?

val sb = StringBuilder()
sb.whiteboard() // Calls the lambda on sb
println(sb)  // Output: Hello, Kotlin!

আমরা sb পাস না করেও সরাসরি এর উপর কাজ করতে পারছি! 🎉


কোথায় কাজে লাগে? 🛠️

1️⃣ Custom DSL (Domain Specific Language)

  • apply, run, let, also ইত্যাদি এর ওপর ভিত্তি করে তৈরি!

2️⃣ Android UI Components (Jetpack Compose)

fun TextView.style() {
    textSize = 20f
    setTextColor(Color.RED)
}

val tv = TextView(context).apply { style() }

3️⃣ Higher-Order Functions

val person = Person().apply {
    name = "Alice"
    age = 25
}

সংক্ষেপে 📝

Lambda with Receiver আমাদের কোড সিম্পল ও ক্লিন করে!
✅ এটা this কে অটোম্যাটিকলি ধরে ফেলে, আলাদা করে অবজেক্ট পাঠাতে হয় না!
DSL, UI, ও Kotlin Standard ফাংশন-এ অনেক কাজে লাগে!

এটাকে এমনভাবে ভাবুন যেন আপনি নিজেই অবজেক্টের ভূমিকায় চলে গেছেন! 🧙‍♂️✨

👉 বুঝতে সমস্যা হলে বলেন! 😊 🚀

Lambda with Receiver 🧠💡 (Brain-Friendly Explanation) at Kotlin

Comments

Popular posts from this blog

AI (Artificial Intelligence) সহজভাবে বোঝার জন্য একদম মস্তিষ্ক-বান্ধব ব্যাখ্যা 🧠🤖

🧠 Regex কী?

Kotlin-এ ভেরিয়েবল ঘোষণা করার দুই উপায়