🚀 Lambda with Receiver – Brain-Friendly Explanation!

🚀 Lambda with Receiver – Brain-Friendly Explanation!

Lambda with Receiver āĻšāϞো Kotlin-āĻ āĻāĻ•āϟি āĻŦিāĻļেāώ āϧāϰāύেāϰ Lambda āĻĢাংāĻļāύ, āϝেāĻ–াāύে āφāĻĒāύি this āĻāϰ āĻŽাāϧ্āϝāĻŽে āϏāϰাāϏāϰি āĻ•োāύāĻ“ āĻ…āĻŦāϜেāĻ•্āϟ (Receiver) āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāϤে āĻĒাāϰেāύ। āĻāϟি āĻŽূāϞāϤ extension functions āĻāϰ āĻŽāϤো āĻ•াāϜ āĻ•āϰে, āϤāĻŦে Lambda āĻĢাংāĻļāύেāϰ āĻŽāϧ্āϝে āĻāϟি āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰা āĻšā§Ÿ।


🔹 āϏাāϧাāϰāύ Lambda āĻāĻŦং Lambda with Receiver āĻŽāϧ্āϝে āĻĒাāϰ্āĻĨāĻ•্āϝ:

  1. āϏাāϧাāϰāĻŖ Lambda:

    • Syntax: { parameter -> expression }
    • āĻāϤে āĻ•োāύো Receiver (āĻ…āĻŦāϜেāĻ•্āϟ) āĻĨাāĻ•ে āύা, āφāĻĒāύি parameter āĻĻি⧟ে āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰেāύ।
    • āωāĻĻাāĻšāϰāĻŖ:
      val double: (Int) -> Int = { x -> x * 2 }
      println(double(5))  // Output: 10
      
  2. Lambda with Receiver:

    • āĻāϟি Receiver āĻ…āĻŦāϜেāĻ•্āϟāĻ•ে this āĻĻি⧟ে āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāϤে āĻĻে⧟।
    • āĻ āϧāϰāύেāϰ Lambda-āϤে Receiver āĻāĻ•্āϏāĻĒ্āϰেāϏ āĻ•āϰা āĻšā§Ÿ { receiver -> ... } āĻāϰ āĻŽাāϧ্āϝāĻŽে, āϤāĻŦে āĻāϟি this āĻļāĻŦ্āĻĻেāϰ āĻŽাāϧ্āϝāĻŽে āϏāϰাāϏāϰি āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰা āϝা⧟।
    • āωāĻĻাāĻšāϰāĻŖ:
      fun String.printFancyMessage() {
          println("đŸ”Ĩ $this đŸ”Ĩ")
      }
      
      "Hello Kotlin".printFancyMessage() // Output: đŸ”Ĩ Hello Kotlin đŸ”Ĩ
      

🔹 Lambda with Receiver āĻ•ি āĻ­াāĻŦে āĻ•াāϜ āĻ•āϰে?

Lambda with Receiver-āĻ this āĻŦ্āϝāĻŦāĻšাāϰেāϰ āĻŽাāϧ্āϝāĻŽে āφāĻĒāύি āϏāĻšāϜেāχ āĻ…āĻŦāϜেāĻ•্āϟেāϰ āĻĒ্āϰāĻĒাāϰ্āϟি āĻŦা āĻĢাংāĻļāύ āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāϤে āĻĒাāϰেāύ। āĻāĻ–াāύে this āĻŽাāύে āĻšāϚ্āĻ›ে Lambda āĻāϰ Receiver Object

āĻāϟি āĻŦিāĻļেāώāϤ DSL (Domain Specific Language) āϤৈāϰি āĻ•āϰাāϰ āĻ•্āώেāϤ্āϰে āĻŦ্āϝāĻŦāĻšৃāϤ āĻšā§Ÿ, āϝেāĻŽāύঃ Jetpack Compose, Gradle, āĻŦা HTML Builders

āωāĻĻাāĻšāϰāĻŖ:

class Box(val width: Int, val height: Int)

fun createBox(init: Box.() -> Unit): Box {
    val box = Box(0, 0)  // Initial box with 0x0 size
    box.init()            // Call lambda with receiver here
    return box
}

val box = createBox {
    println("Box width: $width, height: $height")
    // 'this' refers to the Box object
}
  • āĻāĻ–াāύে Box.() Lambda with Receiver, āϝেāĻ–াāύে this āĻĻ্āĻŦাāϰা āφāĻĒāύি Box āĻ…āĻŦāϜেāĻ•্āϟেāϰ āĻĒ্āϰāĻĒাāϰ্āϟি (āϝেāĻŽāύ width, height) āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāĻ›েāύ।

🔹 Lambda with Receiver āĻ•োāĻĨা⧟ āĻŦ্āϝāĻŦāĻšৃāϤ āĻšā§Ÿ?

  1. DSL āϤৈāϰি āĻ•āϰāϤে:
    Lambda with Receiver āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰা āĻšā§Ÿ āĻĒ্āϰোāĻ—্āϰাāĻŽিং āĻ­াāώাāϰ āĻŽāϧ্āϝে āĻŦিāĻļেāώ āωāĻĻ্āĻĻেāĻļ্āϝে āĻ•োāĻĄ āϞেāĻ–াāϰ āϜāύ্āϝ (āϝেāĻŽāύ Jetpack Compose āĻāϰ UI āϤৈāϰি, āĻŦা Gradle āϏ্āĻ•্āϰিāĻĒ্āϟে āύিāϰ্āĻĻিāώ্āϟ āĻ•াāϜেāϰ āϜāύ্āϝ)।

    • āωāĻĻাāĻšāϰāĻŖ:
      fun html(init: HTML.() -> Unit) {
          val html = HTML()
          html.init()
          println(html)
      }
      
      class HTML {
          fun head(init: Head.() -> Unit) {
              val head = Head()
              head.init()
              println("Head: $head")
          }
      }
      
      class Head
      
  2. Jetpack Compose:

    • Jetpack Compose-āĻ UI āĻ•āĻŽ্āĻĒোāύেāύ্āϟ āϤৈāϰি āĻ•āϰāϤে Lambda with Receiver āĻŦ্āϝāĻŦāĻšাāϰ āĻšā§Ÿ। āϝেāĻŽāύ:
      LazyColumn {
          item {
              Text("Hello World!")
          }
      }
      
    • āĻāĻ–াāύে LazyColumn āĻŦা item āĻĢাংāĻļāύāĻ—ুāϞোāϰ āĻ­িāϤāϰ āφāĻĒāύি this āĻāϰ āĻŽাāϧ্āϝāĻŽে āϞেāχāφāωāϟ āĻ•āĻŽ্āĻĒোāύেāύ্āϟ āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāĻ›েāύ।

🔹 Lambda with Receiver āĻāϰ āϏুāĻŦিāϧা

  1. āϏুāύ্āĻĻāϰ āĻāĻŦং āĻĒāϰিāώ্āĻ•াāϰ āĻ•োāĻĄ:

    • āφāĻĒāύি this āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে object āĻāϰ āĻĒ্āϰāĻĒাāϰ্āϟি āĻŦা āĻĢাংāĻļāύ āĻĄিāϰেāĻ•্āϟāϞি āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāϤে āĻĒাāϰেāύ, āϝাāϰ āĻĢāϞে āĻ•োāĻĄ āĻšā§Ÿে āĻ“āĻ ে āĻĒ⧜āϤে āϏāĻšāϜ āĻāĻŦং āϏুāύ্āĻĻāϰ
  2. Domain Specific Language (DSL) āϤৈāϰি āĻ•āϰা āϝা⧟:

    • Lambda with Receiver āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে āφāĻĒāύি āύāϤুāύ āĻ­াāώা āĻŦা API āϤৈāϰি āĻ•āϰāϤে āĻĒাāϰেāύ āϝা āĻ•িāĻ›ু āύিāϰ্āĻĻিāώ্āϟ āĻ•াāϜ āĻŦা āĻĢিāϚাāϰāĻ•ে āϏāĻšāϜāĻ­াāĻŦে āϰিāĻĒ্āϰেāϜেāύ্āϟ āĻ•āϰে। āϝেāĻŽāύ HTML Builder āĻŦা UI Builders
  3. Readable Syntax:

    • āĻ•োāĻĄ āĻšā§Ÿ āĻ…āύেāĻ• āĻŦেāĻļি āĻ…্āϝাāĻ—্āϰিāĻ—েāϟেāĻĄ āĻāĻŦং āĻĒাāĻ āϝোāĻ—্āϝ, āϝেāĻšেāϤু āφāĻĒāύি āĻ•āĻŽāĻĒ্āϞেāĻ•্āϏ āĻ•āύāĻĢিāĻ—াāϰেāĻļāύāĻ—ুāϞিāĻ•ে āϏāĻšāϜ āĻ­াāώা⧟ āϚিāϤ্āϰিāϤ āĻ•āϰāϤে āĻĒাāϰেāύ।

🔹 āϰিāĻ•্āϝাāĻĒ:

  • Lambda with Receiver āφāĻĒāύাāĻ•ে object-oriented programming-āĻ āφāϰāĻ“ āϏāĻšāϜ āĻāĻŦং āĻĒāϰিāώ্āĻ•াāϰāĻ­াāĻŦে āĻ•াāϜ āĻ•āϰাāϰ āϏুāϝোāĻ— āĻĻে⧟, āϝেāĻ–াāύে āφāĻĒāύি this āĻĻি⧟ে āĻ…āĻŦāϜেāĻ•্āϟেāϰ āĻĢাংāĻļāύ āĻŦা āĻĒ্āϰāĻĒাāϰ্āϟি āϏāϰাāϏāϰি āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāϤে āĻĒাāϰেāύ।
  • āĻāϟি āĻŽূāϞāϤ DSL āϤৈāϰি āĻ•āϰাāϰ āĻ•্āώেāϤ্āϰে āĻ…āϤ্āϝāύ্āϤ āĻ•াāϰ্āϝāĻ•āϰী।

āĻāĻ–āύ āĻĨেāĻ•ে Lambda with Receiver āĻāϰ āϧাāϰāĻŖা āϏ্āĻĒāώ্āϟ āĻāĻŦং āϏāĻšāϜে āĻŦুāĻāϤে āĻĒাāϰāĻŦেāύ! 😎🚀

Comments

Popular posts from this blog

AI (Artificial Intelligence) āϏāĻšāϜāĻ­াāĻŦে āĻŦোāĻাāϰ āϜāύ্āϝ āĻāĻ•āĻĻāĻŽ āĻŽāϏ্āϤিāώ্āĻ•-āĻŦাāύ্āϧāĻŦ āĻŦ্āϝাāĻ–্āϝা 🧠🤖

🧠 Regex āĻ•ী?

Kotlin-āĻ āĻ­েāϰিāϝ়েāĻŦāϞ āϘোāώāĻŖা āĻ•āϰাāϰ āĻĻুāχ āωāĻĒাāϝ়