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

Popular posts from this blog

AI (Artificial Intelligence) সহজভাবে বোঝার জন্য একদম মস্তিষ্ক-বান্ধব ব্যাখ্যা 🧠🤖

🧠 Regex কী?

Kotlin-এ ভেরিয়েবল ঘোষণা করার দুই উপায়