const val এবং val এর মধ্যে পার্থক্য কী?
🧠 Brain-Friendly Explanation of const val vs val
🤔 const val এবং val এর মধ্যে পার্থক্য কী?
| Feature | const val 🔥 |
val 🌱 |
|---|---|---|
| Mutability | পরিবর্তন করা যায় না | পরিবর্তন করা যায় না |
| Evaluation Time | Compile-time এ নির্ধারিত হয় | Runtime এ নির্ধারিত হয় |
| Allowed Types | শুধুমাত্র primitive types (String, Int, Double, ইত্যাদি) |
যে কোনো টাইপ হতে পারে (অবজেক্ট, লিস্ট, ক্লাস ইত্যাদি) |
| Usage Scope | শুধুমাত্র top-level বা object-এ ব্যাবহার করা যায় |
যে কোনো class, function, বা object-এ ব্যাবহার করা যায় |
🔹 const val → Compile-Time Constant (অর্থাৎ আগেই নির্ধারিত হবে!)
const val NAME = "Kotlin"
✅ এটি compile-time এ নির্ধারিত হয় এবং কোড চলার সময় পরিবর্তন হয় না।
✅ শুধুমাত্র primitive types (যেমন String, Int) ব্যবহার করা যায়।
✅ Top-level বা Object-এর মধ্যে ব্যবহার করতে হবে।
🚀 কেন const val দরকার?
- এটি পারফরম্যান্স বাড়ায়, কারণ কম্পাইলার একে সরাসরি ইনলাইন করে।
- Static final variable এর মতো কাজ করে।
🔹 val → Immutable কিন্তু Runtime এ গণনা হতে পারে
val nameLowered = NAME.lowercase() // ❌ Compile-time এ এটি নির্ধারিত করা সম্ভব না
✅ এটি immutable, কিন্তু কম্পাইল টাইমে নয়, বরং runtime এ নির্ধারিত হয়।
✅ যে কোনো expression বা calculation থাকলে val ব্যবহার করতে হবে।
📌 তাহলে নিচের কোনটি সম্ভব?
const val UPPER = "HELLO".lowercase() // ❌ Error! (Runtime computation)
val lower = "HELLO".lowercase() // ✅ Allowed (Runtime এ হবে)
🎯 সারাংশ (Key Takeaways)
| Usage | Use const val when... 🚀 |
Use val when... 🌱 |
|---|---|---|
| Compilation | যদি কোনো পরিবর্তনযোগ্য কোড না থাকে | যদি কোনো runtime computation থাকে |
| Types Allowed | শুধুমাত্র String, Int, Double ইত্যাদি |
যে কোনো অবজেক্ট বা ক্লাস |
| Where to Use? | Top-level বা Object-এর মধ্যে | যে কোনো জায়গায় |
✔ const val → যদি মান পরিবর্তন না হয় এবং প্রিমিটিভ টাইপ হয়।
✔ val → যদি মান নির্ধারণ runtime এ হয় বা complex calculation থাকে।
🚀 মনে রাখার সহজ টিপস:
👉 const val হলো আগেই জানা মান (Fixed at Compile-time)।
👉 val হলো runtime এ নির্ধারিত মান (Calculated at Runtime)। 🎯
Comments
Post a Comment