đ āĻāĻāϞিāύেāϰ āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি (Extension Property) āϏāĻšāĻāĻাāĻŦে
đ āĻāĻāϞিāύেāϰ āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি (Extension Property) āϏāĻšāĻāĻাāĻŦে
đ§ āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āĻী?
āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āĻšāϞো āĻāĻŽāύ āĻāĻāĻি āĻŦৈāĻļিāώ্āĻ্āϝ, āϝা āĻোāύো āĻ্āϞাāϏেāϰ āĻŽāϧ্āϝে āύা āϞিāĻেāĻ āϏেāĻ āĻ্āϞাāϏে āύāϤুāύ āĻĒ্āϰāĻĒাāϰ্āĻি (āĻেāϰিāϝ়েāĻŦāϞেāϰ āĻŽāϤো) āϝোāĻ āĻāϰāϤে āϏাāĻšাāϝ্āϝ āĻāϰে।
đ āϏāĻšāĻ āĻাāώাāϝ়: āĻŽāύে āĻāϰুāύ, āĻāĻĒāύাāϰ āĻাāĻে āĻāĻāĻি āĻĒুāϰোāύো āĻĢোāύ đą āĻāĻে, āĻিāύ্āϤু āĻāĻĒāύি āĻাāĻ্āĻেāύ āĻāϤে āύāϤুāύ āĻāĻāĻি āĻĢিāĻাāϰ āϝোāĻ āĻāϰāϤে। āĻĢোāύেāϰ āĻšাāϰ্āĻĄāĻāϝ়্āϝাāϰ āύা āĻŦāĻĻāϞিāϝ়েāĻ āĻāĻĒāύি āĻিāĻু āϏāĻĢāĻāĻāϝ়্āϝাāϰ āĻāĻĒāĻĄেāĻ āĻāϰে āύāϤুāύ āϏুāĻŦিāϧা āĻĒেāϝ়ে āĻেāϞেāύ! đĄ
āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āĻ িāĻ āĻāĻ āĻাāĻāĻাāĻ āĻāϰে! āĻāĻি āĻোāύো āĻ্āϞাāϏেāϰ āϏোāϰ্āϏ āĻোāĻĄ āύা āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰেāĻ āύāϤুāύ āĻĒ্āϰāĻĒাāϰ্āĻি āϝোāĻ āĻāϰāϤে āĻĻেāϝ়।
đ āĻোāĻĄ āĻāĻĻাāĻšāϰāĻŖ (Example)
āϧāϰুāύ, āĻāĻŽাāĻĻেāϰ āĻāĻāĻি Person āĻ্āϞাāϏ āĻāĻে, āϝাāϰ āĻŽāϧ্āϝে firstName āĻāĻŦং lastName āĻāĻে। āĻāĻāύ āĻāĻŽāϰা āĻাāĻ, āĻāĻ āĻ্āϞাāϏে āĻāĻāĻি āύāϤুāύ āĻĒ্āϰāĻĒাāϰ্āĻি fullName āϝোāĻ āĻāϰāϤে, āĻিāύ্āϤু āĻ্āϞাāϏāĻি āύা āĻŦāĻĻāϞিāϝ়ে।
class Person(val firstName: String, val lastName: String)
// āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āϝোāĻ āĻāϰা
val Person.fullName: String
get() = "$firstName $lastName"
fun main() {
val person = Person("Rahim", "Khan")
println(person.fullName) // Output: Rahim Khan
}
✅ āĻি āĻšāϞো āĻāĻাāύে?
PersonāĻ্āϞাāϏেāϰ āĻিāϤāϰেfullNameāĻিāϞ āύা।- āĻāĻŽāϰা
val Person.fullNameāĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āĻšিāϏেāĻŦে āĻোāώāĻŖা āĻāϰāϞাāĻŽ। - āĻāĻি
get()āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰেfirstNameāĻāĻŦংlastNameāĻāĻāϤ্āϰে āĻোā§া āϞাāĻিāϝ়ে āύāϤুāύ āĻŽাāύ āϤৈāϰি āĻāϰāϞো।
⚡ āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āĻেāύ āĻĻāϰāĻাāϰ?
1️⃣ āĻোāĻĄ āĻĒāϰিāĻŦāϰ্āϤāύ āύা āĻāϰেāĻ āύāϤুāύ āϏুāĻŦিāϧা āϝোāĻ āĻāϰা āϝাā§।
2️⃣ āϏ্āĻ্āϝাāύ্āĻĄাāϰ্āĻĄ āϞাāĻāĻŦ্āϰেāϰি āĻŦা āĻĨাāϰ্āĻĄ-āĻĒাāϰ্āĻি āĻোāĻĄেāϰ āĻ্āώেāϤ্āϰে āĻুāĻŦāĻ āĻāĻĒāĻাāϰী।
3️⃣ āĻোāĻĄ āĻ্āϞিāύ āĻāĻŦং āϰিāĻĄেāĻŦāϞ āĻšā§।
⚠️ āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻিāϰ āϏীāĻŽাāĻŦāĻĻ্āϧāϤা (Limitations)
❌ āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āĻŦ্āϝাāĻিং āĻĢিāϞ্āĻĄ (backing field) āϰাāĻāϤে āĻĒাāϰে āύা, āϤাāĻ āĻāĻŽāϰা set āĻŦ্āϞāĻ āĻĻিā§ে āύāϤুāύ āĻŽাāύ āϏংāϰāĻ্āώāĻŖ āĻāϰāϤে āĻĒাāϰি āύা।
đ´ āϝেāĻা āϏāĻŽ্āĻāĻŦ āύā§:
var Person.age: Int = 25 // ❌ āĻāĻা āĻুāϞ āĻšāĻŦে, āĻাāϰāĻŖ āĻŦ্āϝাāĻিং āĻĢিāϞ্āĻĄ āύেāĻ
✅ āĻিāύ্āϤু āĻāĻŽāϰা get() āĻāĻŦং set() āĻĻিā§ে āĻাāĻ āĻাāϞাāϤে āĻĒাāϰি:
var Person.age: Int
get() = 25
set(value) { println("New age: $value") }
đ¯ āĻļেāώ āĻāĻĨা
- āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে āϏāĻšāĻেāĻ āύāϤুāύ āĻĒ্āϰāĻĒাāϰ্āĻি āϝোāĻ āĻāϰা āϝাāϝ়।
- āĻāĻি āĻļুāϧু getter/setter āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে āĻাāĻ āĻāϰে, āĻিāύ্āϤু āύāϤুāύ āĻĢিāϞ্āĻĄ āϤৈāϰি āĻāϰāϤে āĻĒাāϰে āύা।
- āĻĒ্āϰāĻĒাāϰ্āĻি āϝোāĻ āĻāϰাāϰ āĻāύ্āϝ āĻ্āϞাāϏেāϰ āϏোāϰ্āϏ āĻোāĻĄ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰāϤে āĻšā§ āύা, āϝা āĻāĻি āĻুāĻŦāĻ āĻাāϰ্āϝāĻāϰ āĻāϰে āϤোāϞে।
đ āĻļāϰ্āĻāĻাāĻ āĻŽāύ্āϤ্āϰ:
āĻāĻ্āϏāĻেāύāĻļāύ āĻĢাংāĻļāύ = āύāϤুāύ āĻĢাংāĻļāύ āϝোāĻ āĻāϰা
āĻāĻ্āϏāĻেāύāĻļāύ āĻĒ্āϰāĻĒাāϰ্āĻি = āύāϤুāύ āĻেāϰিāϝ়েāĻŦāϞ āϝোāĻ āĻāϰা (getter/setter)
đĨ āĻāĻļা āĻāϰি, āϏāĻšāĻāĻাāĻŦে āĻŦুāĻāϤে āĻĒেāϰেāĻেāύ! đ āĻোāύো āĻĒ্āϰāĻļ্āύ āĻĨাāĻāϞে āĻাāύাāύ! đ
Comments
Post a Comment