🧠 āĻ•āϟāϞিāύে āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ (Backing Field) āϏāĻšāϜ āĻ­াāώা⧟

 

🧠 āĻ•āϟāϞিāύে āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ (Backing Field) āϏāĻšāϜ āĻ­াāώা⧟

🔍 āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻ•ি?

āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻšāϞো āĻ­েāϤāϰেāϰ āĻāĻ•āϟি āϏ্āϟোāϰেāϜ (storage), āϝা āĻ•োāύো āĻ­্āϝাāϰি⧟েāĻŦāϞ (property) āĻāϰ āφāϏāϞ āĻŽাāύ āϏংāϰāĻ•্āώāĻŖ āĻ•āϰে।

📌 āϏāĻšāϜ āĻ­াāώা⧟: āĻŽāύে āĻ•āϰুāύ, āφāĻĒāύি āĻāĻ•āϟি āĻŦ্āϝাংāĻ• āĻ…্āϝাāĻ•াāωāύ্āϟ āĻ–ুāϞেāĻ›েāύ đŸĻ। āφāĻĒāύি āϝāϤ āϟাāĻ•া āϜāĻŽা āĻĻেāύ āĻŦা āϤুāϞেāύ, āĻŦ্āϝাংāĻ• āϏেāϟাāϰ āĻšিāϏাāĻŦ āϰাāĻ–ে। āĻāĻ–াāύে āĻŦ্āϝাংāĻ•েāϰ āϏেāχ āĻšিāϏাāĻŦেāϰ āĻ–াāϤা āĻšāϚ্āĻ›ে āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ! 💰

āĻ•āϟāϞিāύে āϝāĻ–āύ āφāĻŽāϰা custom getter āĻŦা setter āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰি, āϤāĻ–āύ āϝāĻĻি āφāĻŽāϰা āϏেāχ āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āφāϏāϞ āĻŽাāύ āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āϚাāχ, āϤāĻ–āύ āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻĻāϰāĻ•াāϰ āĻšā§Ÿ।


🏗 āĻ•োāĻĄ āωāĻĻাāĻšāϰāĻŖ (Basic Example)

āφāĻŽāϰা āϚাāχ, name āύাāĻŽেāϰ āĻāĻ•āϟি āĻĒ্āϰāĻĒাāϰ্āϟি āĻĨাāĻ•ুāĻ•, āĻ•িāύ্āϤু āϝāĻ–āύāχ āĻ•েāω name āϏেāϟ āĻ•āϰāĻŦে, āϤāĻ–āύ āϤা āĻ…āϟো āĻ•্āϝাāĻĒিāϟাāϞ āϞেāϟাāϰে āϏেāĻ­ āĻšāĻŦে।

class Person {
    var name: String = "Unknown"
        get() = field  // āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে āĻŽাāύ āϰিāϟাāϰ্āύ āĻ•āϰāĻŦো
        set(value) {
            field = value.uppercase()  // āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄে āύāϤুāύ āĻŽাāύ āϰাāĻ–āĻ›ি
        }
}

fun main() {
    val p = Person()
    p.name = "rahim"
    println(p.name)  // Output: RAHIM
}

āĻ•ি āĻšāϞো āĻāĻ–াāύে?

  • field āĻšāϚ্āĻ›ে āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ, āϝা name āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āφāϏāϞ āĻŽাāύ āϧāϰে āϰাāĻ–āĻ›ে।
  • āϝāĻ–āύāχ name āϏেāϟ āĻ•āϰা āĻšā§Ÿ, āϏেāϟি uppercase āĻ•āϰে āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄে āϏংāϰāĻ•্āώāĻŖ āĻšāϚ্āĻ›ে।
  • āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻ›া⧜া āϏāϰাāϏāϰি name = value.uppercase() āϞিāĻ–āϞে Stack Overflow Error āĻšāϤে āĻĒাāϰে।

đŸŽ¯ āĻ•āĻ–āύ āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻĻāϰāĻ•াāϰ?

1️⃣ āϝāĻ–āύ setter āĻāϰ āĻŽāϧ্āϝে āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āĻŽাāύ āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰāϤে āϚাāχ।
2️⃣ āϝāĻ–āύ getter āĻĨেāĻ•ে āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āφāϏāϞ āĻŽাāύ āĻĢেāϰāϤ āĻĻিāϤে āϚাāχ।
3️⃣ āϝāĻ–āύ āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āĻŽাāύ āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āϚাāχ, āĻ•িāύ্āϤু āϏāϰাāϏāϰি āϏেāχ āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āϰেāĻĢাāϰেāύ্āϏ āύেāχ।


⚠️ āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻ›া⧜া āĻ•ি āĻšāĻŦে? (Stack Overflow Issue)

āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻ›া⧜া āϝāĻĻি āϏāϰাāϏāϰি āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āĻŽাāύ āϏেāϟ āĻ•āϰা āĻšā§Ÿ, āϤাāĻšāϞে Stack Overflow Error āĻšāϤে āĻĒাāϰে।

āĻ­ুāϞ āĻ•োāĻĄ:

class Person {
    var name: String = "Unknown"
        get() = name   // 🚨 āĻ­ুāϞ! āĻāϟি āφāĻŦাāϰ `name` āĻ•ে āĻ•āϞ āĻ•āϰāĻŦে, āϝা āϞুāĻĒ āϤৈāϰি āĻ•āϰāĻŦে।
        set(value) {
            name = value.uppercase()  // 🚨 āĻ­ুāϞ! āĻāϟি `name` āĻ•ে āĻŦাāϰāĻŦাāϰ āϏেāϟ āĻ•āϰāĻŦে।
        }
}

āĻāϟি āχāύāĻĢিāύিāϟ āϰিāĻ•াāϰāĻļāύ āϤৈāϰি āĻ•āϰāĻŦে āĻāĻŦং āĻ…্āϝাāĻĒ āĻ•্āϰ্āϝাāĻļ āĻ•āϰāĻŦে!

āϏāĻ িāĻ• āĻ•োāĻĄ:

class Person {
    var name: String = "Unknown"
        get() = field  // ✅ āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāĻ›ি
        set(value) {
            field = value.uppercase()  // ✅ āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄে āĻŽাāύ āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāĻ›ি
        }
}

🏆 āĻļেāώ āĻ•āĻĨা (Takeaway)

  • āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ (field) āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϞে āφāĻŽāϰা āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āφāϏāϞ āĻŽাāύ āϏংāϰāĻ•্āώāĻŖ āĻ•āϰāϤে āĻĒাāϰি।
  • āĻāϟি āĻļুāϧু āϤāĻ–āύāχ āĻĻāϰāĻ•াāϰ, āϝāĻ–āύ custom getter/setter āϞিāĻ–āϤে āĻšā§Ÿ।
  • āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āϏ্āϟ্āϝাāĻ• āĻ“āĻ­াāϰāĻĢ্āϞো āϏāĻŽāϏ্āϝা āĻĒ্āϰāϤিāϰোāϧ āĻ•āϰে।

đŸŽ¯ āĻļāϰ্āϟāĻ•াāϟ āĻŽāύ্āϤ্āϰ:
Backing Field = āĻ­েāϤāϰেāϰ āĻ–াāϤা (Storage), āϝেāĻ–াāύে āĻĒ্āϰāĻĒাāϰ্āϟিāϰ āφāϏāϞ āĻŽাāύ āĻĨাāĻ•ে! đŸ”Ĩ

🤓 āĻāĻ–āύ āĻ•ি āĻŦ্āϝাāĻ•িং āĻĢিāϞ্āĻĄ āĻĒāϰিāώ্āĻ•াāϰ? āĻ•োāύো āĻĒ্āϰāĻļ্āύ āĻĨাāĻ•āϞে āϜিāϜ্āĻžেāϏ āĻ•āϰুāύ! 🚀

Comments

Popular posts from this blog

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

🧠 Regex āĻ•ী?

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