কটলিন ভেরিয়েবল – Kotlin Variable

kotlin-variable-tutorial-bangla-featured-image

ভেরিয়েবল বলতে বুঝায় মেমোরির অবস্থান, অর্থাৎ একটি ডাটা রাখার জন্য বা স্টোর করার জন্য মেমোরির কোন যায়গাটি দখল করবে তা এই ভেরিয়েবল নির্দিষ্ট করে। সহজভাবে: ভেরিয়েবলে হলো মেমোরির কোন একটা অবস্থান যেখানে আমরা ডাটা রাখতে পারি।

কিভাবে ভেরিয়েবল লিখব?

কটলিনে ভেরিয়েবল লেখার জন্য দুটি কী-ওয়ার্ড আছে ( var এবং val )

var name = "Kotlin"
val anotherName = "Java"

var roll = 1
val newRoll = 3

শুরুতে var অথবা val লিখে তারপর ভেরিয়েবলের নাম তারপর = চিহ্ন দিয়ে ভ্যালু লিখতে হয়। এখানে প্রথম দুটিতে ডাটা হলো স্ট্রিং ও পরের দুটির ডাটা হলো ইন্টিজার টাইপ। ডাটা টাইপ এখানে না লিখলেও হয়। কিভাবে ভ্যালু লিখা হয়েছে তার ভিত্তিতে কটলিন কম্পাইলার বুঝতে পারে ডাটাটি কি ধরনের। যেমন: প্রথম দুটিতে ডাবল কোটেশনের মধ্যে লেখা “Kotlin”, “Java” থেকে বুঝতে পারে যে এটা স্ট্রিং এবং পরের দুটিতে কোটেশন ছাড়া ও দশমিক ছাড়া সংখ্যা 1, 3 থেকে বুঝতে পারে যে এটা ইন্টিজার। এটাকে প্রোগ্রামিংয়ে বলা হয় ইনফারেন্স (Inference).

চাইলে আলাদা ভাবে ভেরিয়েবল ডিক্লেয়ার করার সময় বলে দেয়া যায় যে ভেরিয়েবলটি কি ধরনের ডেটা রাখতে পারবে। এজন্য ভেরিয়েবলের নামের পর কোলন : চিহ্ন দিয়ে টাইপ বলে দিতে হবে।

var name : String = "Kotlin"
var roll : Int = 1

এখানে শুরুতেই আমরা ভ্যালু (Kotlin, 1) দিয়ে দিয়েছি। শুরুতেই ভ্যালু দিতে হবে এমন নয়। পরেও ভ্যালু এ্যাসাইন করা যায়।

var name: String
name = "Kotlin"

এখন দেখি var ও val এর মধ্যে পার্থক্য।

var হলো মিউটেবল (Mutable) ভেরিয়েবল। এটার ভ্যালু পরে বদলানো যায়। কিন্তু val হলো ইমমিউটেবল (Immutable) ভেরিয়েবল যার ভ্যালু পরে বদলানো যায় না। 

var name = "Kotlin"
name = "Java" // এটা ঠিক ভাবে রান হবে।

আবার,

val name = "Kotlin"
name = "Java" // এটা রান হবে না, ইরর হবে।

এখানে val থাকায় পুনরায় ভ্যালু এ্যাসাইন করা যায় না। 

সবক্ষেত্রেই var দিয়ে কাজ চালিয়ে নেওয়া যাবে। কিন্তু যদি এমন হয় কোন একটা ভেরিয়েবলের মান কখনোই বদলানোর প্রয়োজন নেই কিন্তু আমরা ভুল করে বদলে দিয়েছি তাহলে তা টের পাওয়া যাবে না। সেজন্য val ব্যবহার করলে কোডের মাঝখানে ভুল করে কোথাও সেটাতে নতুন ভ্যালু এ্যাসাইন করে ফেললে কম্পাইলটাইম ইরর হবে আর বুঝতে পারবো যে সেটি ভুল করে করা হয়েছে।

  •  
  •  
  •  
  •  
  •  

Leave a Reply

Your email address will not be published. Required fields are marked *