মূল কন্টেন্টে যান
মডিউল 1 · 1-এর পাঠ 5কোর্সে 1/50~10 min
মডিউল পাঠ (1/5)

ভেরিয়েবল এবং প্রকার

গো-তে প্রতিটি ভেরিয়েবলের একটি স্ট্যাটিক টাইপ আছে যা কম্পাইলারের কাছে পরিচিত: একবার ঘোষিত, একটি পরিবর্তনশীল প্রকার পরিবর্তন করতে পারে না। এই দৃঢ়তা - খুব ভিন্ন জাভাস্ক্রিপ্ট বা পাইথন থেকে — কম্পাইল-টাইম পেতে আপনি যে মূল্য প্রদান করেন রানটাইম, ছোট বাইনারি এবং অনুমানযোগ্য এর পরিবর্তে ত্রুটি কর্মক্ষমতা

ঘোষণার দুটি রূপ

var সুস্পষ্ট প্রকার সহ

Go
var name string = "Ada"
var age int = 36
var active bool

যখন আপনি মান বাদ দেন (যেমন var active bool) ভেরিয়েবলটি পায় শূন্য মান এর প্রকার — আমরা পরবর্তী পাঠে এটিতে ফিরে আসব।

সংক্ষিপ্ত ঘোষণা :=

একটি ফাংশনের ভিতরে আপনি := ব্যবহার করতে পারেন, যা থেকে টাইপ অনুমান করে ডানদিকে অভিব্যক্তি। এটি হল মূর্তিপূর্ণ ফর্ম এবং আপনি যেটি ব্যবহার করবেন সময়ের 90%:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

মৌলিক ধরনের আপনি সরাসরি দেখা হবে

প্রকারউদাহরণনোট
int42আকার CPU (32 বা 64 বিট) এর উপর নির্ভর করে
float643.14দশমিক আক্ষরিক জন্য ডিফল্ট
string"Ada"UTF-8, অপরিবর্তনীয়
booltrue, falseকোন "সত্য", শুধুমাত্র বিশুদ্ধ বুল
rune'A'int32 এর উপনাম, একটি ইউনিকোড কোড পয়েন্ট
byte0x7Fuint8 এর উপনাম

এছাড়াও রয়েছে int8/16/32/64, uint8/16/32/64, float32 এবং complex64/128 যখন আপনার সুনির্দিষ্ট আকারের প্রয়োজন হয় (বাইনারী পার্সিং, ইন্টারপ, ইত্যাদি)।

একাধিক ঘোষণা

আপনি একটি var-ব্লক বা একটি বহুবচন := দিয়ে বেশ কয়েকটি ভেরিয়েবল ঘোষণা করতে পারেন:

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // different types: no problem

ভেরিয়েবল ঘোষিত কিন্তু ব্যবহার করা হয় না

গো কঠোর: একটি পরিবর্তনশীল ঘোষিত এবং কখনই ব্যবহৃত হয় না একটি সংকলন ত্রুটি, সতর্কতা নয়। একই অব্যবহৃত imports এর ক্ষেত্রে প্রযোজ্য।

Go
func main() {
    x := 42
    // error: x declared and not used
}

নিয়মটি অস্থায়ীভাবে নীরব করতে আপনি _ (খালি শনাক্তকারী) ব্যবহার করেন:

Go
_ = x

তোমার পালা

ব্যায়াম#go.m1.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

'Ada' মান সহ স্ট্রিংয়ের একটি পরিবর্তনশীল নাম ঘোষণা করতে var ব্যবহার করুন এবং এটি মুদ্রণ করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

দীর্ঘ ফর্ম হল `var <name> <type> = <value>`।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#go.m1.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

একটি লাইনে, বয়সের জন্য 36 এবং শহরের জন্য 'Roma' নির্ধারণ করতে := ব্যবহার করুন, তারপর উভয়ই প্রিন্ট করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

আপনি একসাথে একাধিক ভেরিয়েবল বরাদ্দ করতে পারেন: `a, b := 1, "Due"`।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

Quiz#go.m1.l1.e3
প্রস্তুত

এই ঘোষণাগুলির মধ্যে কোনটি একটি সংকলন ত্রুটি তৈরি করে যদি একটি ফাংশনের বাইরে রাখা হয়?

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
উত্তরের বিকল্প

রিক্যাপ

  • স্ট্যাটিক টাইপ, স্বয়ংক্রিয়ভাবে := দ্বারা অনুমান করা হয়েছে বা var দিয়ে ঘোষণা করা হয়েছে।
  • := শুধুমাত্র ভিতরে ফাংশন; প্যাকেজ স্তরে শুধুমাত্র var/const।
  • অব্যবহৃত ভেরিয়েবল এবং আমদানি = সংকলন ত্রুটি: তাদের নীরব করতে _ ব্যবহার করুন।
  • int/float64/string/bool দৈনন্দিন ক্ষেত্রে 90% কভার করে।