Kotlin componentN() Operator – সহজভাবে মজার ব্যাখ্যা!
🚀 Kotlin componentN() Operator – সহজভাবে মজার ব্যাখ্যা! 🎯
🤔 componentN() কী?
componentN() হলো Kotlin-এর ডি-স্ট্রাকচারিং (Destructuring) মেকানিজম যেটা data class, collections বা কাস্টম ক্লাস থেকে আলাদা আলাদা ভ্যালু বের করতে সাহায্য করে!
👉 সহজ ভাষায়, কোনো অবজেক্টের স্পেসিফিক অংশ সরাসরি একাধিক ভ্যারিয়েবলে রাখতে দেয়!
🎯 সহজ উদাহরণ – componentN() কিভাবে কাজ করে?
data class User(val name: String, val age: Int)
fun main() {
val user = User("Alice", 25)
// `componentN()` এর সাহায্যে destructuring
val (name, age) = user
println("Name: $name") // Name: Alice
println("Age: $age") // Age: 25
}
📌 পেছনে কী হচ্ছে?
👉 val (name, age) = user এই লাইনের ব্যাকগ্রাউন্ডে Kotlin অটোমেটিক্যালি নিচের কোডের মতো কল করে:
val name = user.component1() // component1() => "Alice"
val age = user.component2() // component2() => 25
🛠️ componentN() কোথায় কাজ করে?
✅ 1️⃣ Data Class এর সাথে ডিফল্ট থাকে!
Data class ব্যবহার করলে Kotlin অটোমেটিক componentN() ফাংশন জেনারেট করে!
data class Point(val x: Int, val y: Int)
fun main() {
val p = Point(10, 20)
val (a, b) = p // component1() & component2()
println("X: $a, Y: $b") // X: 10, Y: 20
}
✅ 2️⃣ Custom Class এ operator fun componentN() ব্যবহার করা যায়!
👉 যদি data class না হয়, তাহলে ম্যানুয়ালি componentN() ডিফাইন করতে হবে!
class Person(val firstName: String, val lastName: String) {
operator fun component1() = firstName
operator fun component2() = lastName
}
fun main() {
val person = Person("John", "Doe")
val (first, last) = person
println("First Name: $first") // First Name: John
println("Last Name: $last") // Last Name: Doe
}
✅ 3️⃣ Collections এর সাথে componentN()
👉 List-এর প্রথম কয়েকটা এলিমেন্ট একসাথে ধরতে চাইলে:
fun main() {
val numbers = listOf(10, 20, 30, 40)
val (first, second, third) = numbers
println("First: $first") // First: 10
println("Second: $second") // Second: 20
println("Third: $third") // Third: 30
}
⚠️ তবে List-এ শুধু প্রথম ৫টা এলিমেন্টের জন্য componentN() কাজ করে!
📌 যদি তার বেশি লাগে, subList() বা লুপ ইউজ করা ভালো!
✅ 4️⃣ Pair & Triple এর সাথে componentN()
👉 Pair এবং Triple ব্যবহার করলে component1(), component2(), component3() থাকবেই!
fun main() {
val pair = Pair("Hello", 123)
val (text, number) = pair
println("Text: $text, Number: $number") // Text: Hello, Number: 123
val triple = Triple("Alice", 25, "Engineer")
val (name, age, job) = triple
println("$name is a $age-year-old $job.") // Alice is a 25-year-old Engineer.
}
📌 সংক্ষেপে স্মার্ট রিক্যাপ!
✅ componentN() হল Kotlin-এর ডি-স্ট্রাকচারিং সাপোর্টের মূল চাবিকাঠি!
✅ data class-এ ডিফল্ট থাকে!
✅ কাস্টম ক্লাসের জন্য operator fun componentN() বানানো যায়!
✅ Collections, Pair, Triple-এর সাথে কাজ করে!
✅ কোডকে ছোট, ক্লিন ও রিডেবল করে!
এখন আপনি componentN() স্মার্টলি ব্যবহার করতে পারবেন! 😎🔥
Comments
Post a Comment