1. ভেরিয়েবল এবং ধ্রুবক
গোলাংগে, ভেরিয়েবল এবং ধ্রুবক দুটি মৌলিক ধারণা যা একটি প্রোগ্রামে খুব গুরুত্বপূর্ণ ভূমিকা পালন করে।
- একটি ভেরিয়েবল হল একটি নামযুক্ত পরিচিতকরণ যা একটি প্রোগ্রামে ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। গোলাংগে, ভেরিয়েবল ঘোষণা করতে
var
কীওয়ার্ড ব্যবহার করা হয়। -
ধ্রুবক হল একটি পরিচিতকরণ যার মান প্রোগ্রামে পরিবর্তন করা যায় না। গোলাংগে, ধ্রুবক ঘোষণা করতে
const
কীওয়ার্ড ব্যবহার করা হয়।
2 গোলাং ভেরিয়েবল ঘোষণা এবং আরম্ভণ
2.1 একক ভেরিয়েবল ঘোষণা এবং প্রদান
Go ভাষায়, var
কীওয়ার্ডটি ব্যবহার করা হয় একটি ভেরিয়েবল নিয়ে ঘোষণা করার নিমিত্তে var variable_name type
এর ফরম্যাট। ঘোষণা করার পরে, ভেরিয়েবলটির মান পরবর্তী কোডে প্রদান করা যেতে পারে, বা এটি ঘোষণা সময়ে সরাসরি আরম্ভিক হতে পারে। যেমন:
var age int // একটি পূর্ণসংখ্যা ভেরিয়েবল ঘোষণা করুন age
age = 25 // ভেরিয়েবলকে একটি মান দিন
var name string = "Alice" // ভেরিয়েবল নাম ঘোষণা এবং আরম্ভ করুন
2.2 একাধিক ভেরিয়েবলের ঘোষণা
Go ভাষা একই সাথে একাধিক ভেরিয়েবলের ঘোষণা সমর্থন করে, যা কোডটি আরও সংক্ষেপনাত্মক করতে সাহায্য করতে পারে। বাল্ক ঘোষণা সাধারণত কোনো ফাংশনের শুরুতে বা প্যাকেজ স্তরে করা হয়। উদাহরণ:
var (
firstName, lastName string
age int
)
firstName = "John"
lastName = "Doe"
age = 30
উপরের বাল্ক ঘোষণায়, firstName
এবং lastName
স্ট্রিং হিসেবে ঘোষণা করা হয়, যখন age
একটি পূর্ণসংখ্যা।
2.3 ধরণ অনুমান এবং সংক্ষিপ্ত ভেরিয়েবল ঘোষণা
Go ভাষায়, ভেরিয়েবলের ধরণ বাধা দেওয়া প্রয়োজন নেই সবসময়। যদি একটি ভেরিয়েবল ঘোষণা করার সময় একটি আরম্ভণ অভিব্যক্তি সরবরাহ করা হয়, তবে গো ভেরিয়েবলের ধরণটি অনুমান করতে পারে। এটি ধরা যায় যে, এটির ধরণ অনুমান বলা হয়। :=
ব্যবহার করে সংক্ষেপণ ভেরিয়েবল ঘোষণা সংক্ষেপণ করার বিবেচনায় ভেরিয়েবল ঘোষণা এবং আরম্ভ করা বিবেচনার বিবেচনায়। উদাহরণ:
city := "কলকাতা" // সংক্ষেপণ ভেরিয়েবল ঘোষণা এবং আরম্ভণ করুন একই সাথে শহর
দেশ := "ভারত" // দেশটির জন্য একে একটি স্ট্রিং ধরার ভাবে নিয়ে উপলব্ধি করা হয়
এর মানে যা, সংক্ষেপণ ভেরিয়েবল নির্ধারণ কেবল ফাংশনের ভিতরে ব্যবহার করা যাবে এবং এটি গ্লোবাল স্কোপে ব্যবহার করা যাবে না।
2.4 ফাংশনের বাইরে ভেরিয়েবল ঘোষণা
ফাংশনের বাইরে ঘোষণা করা ভেরিয়েবলগুলির প্যাকেজ স্তর স্কোপ থাকে। এই ভেরিয়েবলগুলি সমস্ত প্যাকেজের মধ্যে দেখা যাবে এবং ব্যবহার করা যাবে। উদাহরণ:
var globalVar string = "আমি গ্লোবাল" // একটি গ্লোবাল ভেরিয়েবলের উপলব্ধি
func printGlobalVar() {
fmt.Println(globalVar) // ফাংশনের ভিতরে গ্লোবাল ভেরিয়েবলের ব্যবহার
}
গ্লোবাল ভেরিয়েবলগুলি প্যাকেজের ভিত্তিতে যে কোনও ফাংশনগুলির মধ্যে ভাগ করা যায়, তবে সঠিকভাবে ব্যবহার করা উচিত যেন নামকরণ সংঘাত এবং অস্পষ্ট পরিস্থিতিতে সংজ্ঞা করা যায়।
পরামর্শ: এখানে মৌলিক ফাংশন কোডের সূক্ষ্ম ব্যাখ্যা বুঝা যায়, ফাংশনের বিস্তারিত ব্যাখ্যা পরবর্তী অধ্যায়গুলিতে প্রদান করা হবে।
3 মৌলিক ডেটা প্রকার এবং শূন্য মান
3.1 গোলাং-এ মৌলিক ডেটা প্রকার
গোলাং ভাষায়, প্রতিটি ভেরিয়েবলের টাইপটি সুস্পষ্ট শব্দার্থিক এবং আচরণশীল বৈশিষ্ট্য সরবরাহ করে। নিম্নলিখিত কিছু সাধারণ মৌলিক ডেটা প্রকারগুলি আছে:
-
int
,int8
,int16
,int32
,int64
: পূর্ণসংখ্যার বিভিন্ন পরিসীমা -
uint
,uint8
,uint16
,uint32
,uint64
: অ-নামদিীয় পূর্ণসংখ্যা -
float32
,float64
: ফ্লোটিং-পয়েন্ট সংখ্যা -
bool
: বুলিয়ান মান (সত্য বা মিথ্যা) -
string
: স্ট্রিং
3.2 শূন্য মানের ধারণা
গোলাং ভাষায়, ভেরিয়েবলগুলি নিজের ধরণের শূন্য মানের পরিভাষা পরে। শূন্য মানের ধারণা গোপনীয়তা সুর্বেছিদে ধরা যায়। ধারণ স্বীকৃত ছাড়া, তবে গো, এটি নিশ্চিত করে যে সব ভেরিয়েবলের সবসময় একটি বৈধ আদিম মান আছে। এখানে প্রতিটি মৌলিক ডেটা প্রকারের শূন্য মানগুলি:
- পূর্ণসংখ্যার জন্য শূন্য মানটি
0
- ফ্লোটিং-পয়েন্ট সংখ্যার শূন্য মান
0.0
- বুলিয়ানের জন্য শূন্য মান
false
- স্ট্রিং এর শূন্য মান একটি ফাঁকা স্ট্রিং
""
উদাহরণ:
var i int // শূন্য মানটি 0
var f float64 // শূন্য মানটি 0.0
var b bool // শূন্য মানটি মিথ্যা
var s string // শূন্য মানটি ""
শূন্য মানের ব্যাখ্যা বুঝা গুরুত্বপূর্ণ, কারণ এট
4.1 স্থানীয় চলক
স্থানীয় চলক হলো এমন চলক যা কোনো ফাংশনের ভিতরে সংজ্ঞায়িত হয়, এবং তারা শুধুমাত্র ঐ ফাংশনের ভিতরে অ্যাক্সেস করা সম্ভব। ফাংশনের প্যারামিটারগুলি ও স্থানীয় চলকের অংশ। তারা তৈরি হওয়ার সাথে সাথে থেকে যে সময় ফাংশন এক্সিকিউশন শেষ হয়, স্থানীয় চলকগুলি মোছে যাবে। প্রতিবার ফাংশন কল করা হলে, স্থানীয় চলকগুলি পুনরায় তৈরি হয়।
func localVariableExample() {
var localVariable int = 10 // এটা একটি স্থানীয় চলক
fmt.Println(localVariable)
}
func main() {
localVariableExample() // আউটপুট: 10
// fmt.Println(localVariable) // এটি একটি কম্পাইল ত্রুটি ঘটাবে কারণ localVariable এখানে দৃশ্যমান নয়
}
উপরের উদাহরণে, localVariable
শুধুমাত্র localVariableExample
ফাংশনের ভিতরে প্রবেশ করা যাবে।
4.2 গ্লোবাল চলক
গ্লোবাল চলক হলো কোনো ফাংশনের বাইরে সংজ্ঞায়িত চলক, এবং এগুলি একই প্যাকেজের সব ফাইলে অ্যাক্সেস করা সম্ভব। অন্য প্যাকেজে গ্লোবাল চলক ব্যবহার করতে চাইলে, ভেরিয়েবলের নামটি গোরোর অ্যাক্সেস নিয়ন্ত্রণের সাথে মেলানো আবশ্যক, গোরোর অ্যাক্সেস নিয়ন্ত্রণের নিয়মগুলির সাথে সামঞ্জস্যপূর্ণ হতে হবে।
package main
import "fmt"
var globalVariable int = 20 // এটি একটি গ্লোবাল চলক
func main() {
fmt.Println(globalVariable) // আউটপুট: 20
changeGlobal()
fmt.Println(globalVariable) // আউটপুট: 30
}
func changeGlobal() {
globalVariable = 30 // গ্লোবাল চলকের মান পরিবর্তন করুন
}
এই উদাহরণে, globalVariable
সাধারণভাবে main
ফাংশন এবং changeGlobal
ফাংশনে দৃশ্যমান।
5 ধ্রুব এবং ব্যবহারের ঘোষণা
5.1 const
কীওয়ার্ড
আমরা const
কীওয়ার্ড ব্যবহার করে ধ্রুব সংজ্ঞায়িত করি। ধ্রুব মানগুলি পরিবর্তন করা যাবে না, এবং একবার সংজ্ঞায়িত করা হলে, তাদের মান পরিবর্তন করা সম্ভব নয়। ধ্রুব মান হতে পারে যোকন মৌলিক ডেটা টাইপ হতে পারে যেমন: ইন্টিজার, ফ্লোটিং-পয়েন্ট নম্বর, বুলিয়ান, বা স্ট্রিং।
const Pi = 3.14 // একটি ফ্লোট ধ্রুব ঘোষণা করুন
const StrConst string = "হ্যালো, বিশ্ব!" // একটি স্ট্রিং ধ্রুব ঘোষণা করুন
func main() {
fmt.Println(Pi)
fmt.Println(StrConst)
}
5.2 এনাম ধ্রুব
গো ভাষার কোনও নির্দিষ্ট এনামের ধরন নেই, কিন্তু আপনি এনাম অর্জন করতে iota
কীওয়ার্ড ব্যবহার করতে পারেন। const
ব্লকের মধ্যে, প্রতিটি অতিরিক্ত ধ্রুব ঘোষণা করা হলে, iota
এর মান 1 যোগ করে।
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
Thursday // 4
Friday // 5
Saturday // 6
)
func main() {
fmt.Println(Sunday) // আউটপুট: 0
fmt.Println(Saturday) // আউটপুট: 6
}
উপরের কোডটি সপ্তাহের দিনের জন্য একটি এনাম ঘোষণা করে, যেখানে iota
এর মান const
ব্লকের মধ্যে ইনিশিয়ালাইজ করে 0 এর সাথে স্থাপিত হয় এবং পরবর্তী ঘোষণায় প্রতিটি বার্ষিক অঙ্ক এর 1 করে বাড়ানো হয়।
5.3 ধ্রুবের আয়োজন
ধ্রুবের আয়োজন চলকের সাধারণ মতো। যদি একটি ধ্রুব ফাংশনের ভিতরে সংজ্ঞায়িত হয়, তার আয়োজনটি সীমাবদ্ধ হবে ঐ ফাংশনে। যদি একটি ধ্রুব ফাংশনের বাইরে (গ্লোবালি) সংজ্ঞায়িত হয়, তার আয়োজনটি সমস্ত প্যাকেজে, এবং প্রথম অক্ষরটি মাড়ানো হলে, অন্যান্য প্যাকেজগুলিতে অ্যাক্সেস করা যাবে।
ধ্রুবের আয়োজন প্রবাহ সার্বিক প্রবাহ দূষণ কমিয়ে তোলে এবং প্রোগ্রাম রক্ষণাবেক্ষণ এবং পঠনযোগ্যতা উন্নত করে।
const GlobalConst = "এটি একটি সার্বিক ধ্রুব"
func main() {
const LocalConst = "এটি একটি স্থানীয় ধ্রুব"
fmt.Println(GlobalConst) // এটি বৈধ
fmt.Println(LocalConst) // এটি বৈধ
}
func anotherFunction() {
// fmt.Println(LocalConst) // এটি একটি কম্পাইলেশন ত্রুটি উড়ায়: LocalConst এই ফাংশনে দৃশ্যমান নয়
fmt.Println(GlobalConst) // এটি বৈধ
}
এই উদাহরণে, LocalConst
শুধুমাত্র main
ফাংশনের ভিতরে অ্যাক্সেস করা যাবে, যখন GlobalConst
পূর্ন প্যাকেজে সম্পূর্ণ অ্যাক্সেস করা যাবে।