đ Kotlin Inline (Value) Class – āĻŽāĻাāϰ āĻাāώাā§ āϏāĻšāĻ āĻŦ্āϝাāĻ্āϝা! đ¯
đ Kotlin Inline (Value) Class – āĻŽāĻাāϰ āĻাāώাā§ āϏāĻšāĻ āĻŦ্āϝাāĻ্āϝা! đ¯
đ¤ Inline (Value) Class āĻী?
Inline class (āϝাāĻে āĻāĻāύ āĻŦāϞা āĻšā§ Value class) āĻšāϞো āĻšাāϞāĻা āĻāĻāύেāϰ āĻ্āϞাāϏ, āϝা āĻļুāϧুāĻŽাāϤ্āϰ āĻāĻāĻি āĻĒ্āϰোāĻĒাāϰ্āĻি āϧāϰে āϰাāĻāϤে āĻĒাāϰে।
đ āĻāĻা āĻŽূāϞāϤ āĻ
āĻĒ্āĻিāĻŽাāĻāĻেāĻļāύেāϰ āĻāύ্āϝ, āϝেāĻাāύে āĻāĻŽāϰা āĻাāĻ āĻ
āϤিāϰিāĻ্āϤ āĻ
āĻŦāĻেāĻ্āĻ āϤৈāϰি āύা āĻšোāĻ āĻāĻŦং āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻাāϞো āĻĨাāĻুāĻ!
đ āĻেāύ Inline (Value) Class āĻĻāϰāĻাāϰ?
āϏাāϧাāϰāĻŖāϤ, āĻāĻŽāϰা āϝāĻāύ āĻোāύো āĻোāĻ āĻĄাāĻা āĻাāĻāĻĒ (āϝেāĻŽāύ String, Int, Long) āϧāϰে āϰাāĻāϤে āĻাāĻ, āϤāĻāύ āĻāĻāĻা āĻĒুāϰোāĻĒুāϰি āĻ্āϞাāϏ āĻŦাāύাāύো āĻ
āĻĒāĻিāĻŽাāĻāĻāĻĄ āύā§!
đ Inline class āĻāĻ āϏāĻŽāϏ্āϝা āϏāĻŽাāϧাāύ āĻāϰে!
āϧāϰুāύ, āĻāĻŽাāĻĻেāϰ āĻāĻāĻা āĻāĻāĻাāϰেāϰ āĻāĻāĻĄি āϧāϰাāϰ āĻāύ্āϝ āĻāĻāĻা āĻ্āϞাāϏ āĻĻāϰāĻাāϰ।
❌ āϏাāϧাāϰāĻŖ āĻ্āϞাāϏ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϞে:
class UserId(val id: String)
đ āϏāĻŽāϏ্āϝা: āĻāĻা āĻĒুāϰোāĻĒুāϰি āĻāĻāĻি āĻ্āϞাāϏ āϤৈāϰি āĻāϰāĻŦে, āϝা āĻ āϤিāϰিāĻ্āϤ āĻŽেāĻŽোāϰি āĻāϰāĻ āĻāϰāĻŦে!
✅ Inline (Value) Class āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϞে:
@JvmInline
value class UserId(val id: String)
đ āĻāĻাāύে āĻŦā§ āĻĒাāϰ্āĻĨāĻ্āϝ āĻšāϞো:
✔️ āĻāĻা āĻ
āϤিāϰিāĻ্āϤ āĻ
āĻŦāĻেāĻ্āĻ āϤৈāϰি āĻāϰāĻŦে āύা!
✔️ Runtime-āĻ āĻāĻি āĻļুāϧুāĻŽাāϤ্āϰ String āĻšিāϏেāĻŦে āĻাāĻ āĻāϰāĻŦে!
✔️ āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻāύ্āύāϤ āĻšāĻŦে!
đ ️ Inline (Value) Class āĻিāĻাāĻŦে āĻাāĻ āĻāϰে?
@JvmInline
value class UserId(val id: String)
fun printUserId(userId: UserId) {
println("User ID: ${userId.id}")
}
fun main() {
val userId = UserId("ABC123")
printUserId(userId)
}
✅ Runtime-āĻ āĻāĻি āĻļুāϧুāĻŽাāϤ্āϰ String āĻšিāϏেāĻŦে āĻাāĻ āĻāϰāĻŦে!
đ¯ āĻŽāĻাāϰ āĻŦ্āϝাāĻĒাāϰ āĻšāĻ্āĻে:
println(userId)
đ āĻāĻা āĻĒ্āϰিāύ্āĻ āĻāϰāĻŦে: ABC123, āĻিāύ্āϤু UserId@1a2b3c āĻাāĻāĻĒেāϰ āĻিāĻু āύা! đ
đ Inline (Value) Class-āĻāϰ āϏুāĻŦিāϧা āĻী?
✔️ āĻ
āϤিāϰিāĻ্āϤ āĻ
āĻŦāĻেāĻ্āĻ āϤৈāϰি āĻšā§ āύা!
✔️ āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻŦাā§াā§!
✔️ āĻাāĻāĻĒ āϏেāĻĢāĻি āύিāĻļ্āĻিāϤ āĻāϰে!
đ āĻাāĻāĻĒ āϏেāĻĢāĻিāϰ āĻāĻĻাāĻšāϰāĻŖ
āϧāϰুāύ, āĻāĻŽাāĻĻেāϰ āĻĻুāĻ āϧāϰāύেāϰ āĻāĻāĻĄি āĻāĻে – UserId & OrderId
@JvmInline
value class UserId(val id: String)
@JvmInline
value class OrderId(val id: String)
fun printUser(userId: UserId) {
println("User ID: ${userId.id}")
}
fun main() {
val userId = UserId("User123")
val orderId = OrderId("Order456")
printUser(userId) // ✅ āĻ িāĻ āĻāĻে!
// printUser(orderId) ❌ Error: Type mismatch!
}
đ āĻāĻাāύে UserId āĻāĻŦং OrderId āĻĻেāĻāϤে āĻāĻāĻ String, āĻিāύ্āϤু āĻāĻে āĻ
āύ্āϝেāϰ āĻĒāϰিāĻŦāϰ্āϤে āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰা āϝাāĻŦে āύা!
đ āĻāϤে āĻুāϞ āĻšāĻā§াāϰ āϏāĻŽ্āĻাāĻŦāύা āĻāĻŽে āϝাā§! đĨ
đ Inline (Value) Class-āĻ āĻিāĻু āϏীāĻŽাāĻŦāĻĻ্āϧāϤা
❌ āĻāĻাāϧিāĻ āĻĒ্āϰোāĻĒাāϰ্āĻি āĻĨাāĻāϤে āĻĒাāϰে āύা!
@JvmInline
value class UserId(val id: String, val name: String) // ❌ Error!
❌ āĻ
্āϝাāĻŦāϏ্āĻ্āϰাāĻ্āĻ āĻŦা āĻāĻĒেāύ āĻšāϤে āĻĒাāϰে āύা!
❌ āĻŦāĻĄি āĻĨাāĻāϤে āĻĒাāϰে āύা! (āĻŽেāĻĨāĻĄ āĻĨাāĻāϞে, āϏেāĻা āĻāύāϞাāĻāύ āĻšāĻā§া āϞাāĻāĻŦে)
đ Inline Class + Function Overloading
@JvmInline
value class Meter(val value: Double)
fun calculateDistance(m: Meter) {
println("Distance: ${m.value} meters")
}
fun main() {
val distance = Meter(10.5)
calculateDistance(distance) // ✅ Distance: 10.5 meters
}
đ āĻāĻা āĻļুāϧুāĻŽাāϤ্āϰ Double āĻšিāϏেāĻŦে āĻাāĻ āĻāϰāĻŦে, āĻāϞাāĻĻা āĻ
āĻŦāĻেāĻ্āĻ āĻšāĻŦে āύা!
đ Inline (Value) Class vs. Data Class
| Feature | Data Class | Inline (Value) Class |
|---|---|---|
| Multiple Properties? | ✅ āĻš্āϝাঁ | ❌ āύা (āĻļুāϧু ā§§āĻা) |
| Object Overhead? | ❌ āĻŦেāĻļি | ✅ āĻāĻŽ (āĻĒ্āϰাā§ āύেāĻ) |
| Performance? | ❌ āĻāĻŽ | ✅ āĻŦেāĻļি |
| Use Case? | Complex data | Simple, optimized data |
đ¯ āϏংāĻ্āώেāĻĒে āϰিāĻ্āϝাāĻĒ!
✅ Inline (Value) Class āĻļুāϧু ā§§āĻা āĻĒ্āϰোāĻĒাāϰ্āĻি āϧāϰে āϰাāĻে!
✅ āĻ
āϤিāϰিāĻ্āϤ āĻ
āĻŦāĻেāĻ্āĻ āϤৈāϰি āĻšā§ āύা, āĻĒাāϰāĻĢāϰāĻŽ্āϝাāύ্āϏ āĻাāϞো āĻĨাāĻে!
✅ āĻাāĻāĻĒ āϏেāĻĢāĻি āύিāĻļ্āĻিāϤ āĻāϰে!
✅ āĻļুāϧুāĻŽাāϤ্āϰ āĻোāĻ-āĻোāĻ āĻĄাāĻা āĻাāĻāĻĒেāϰ āĻāύ্āϝ āĻĒাāϰāĻĢেāĻ্āĻ!
āĻāĻāύ āĻāĻĒāύি Inline (Value) Class āύিā§ে āϏ্āĻŽাāϰ্āĻāϞি āĻাāĻ āĻāϰāϤে āĻĒাāϰāĻŦেāύ! đđĨ
Comments
Post a Comment