গোলং এর কাঠামো কি?

Golam Era Kathamo Ki



গো ভাষাতে, একটি কাঠামো একটি একক নামের অধীনে গোষ্ঠীবদ্ধ ভেরিয়েবলের (ক্ষেত্র) সংগ্রহ। এটি একটি যৌগিক ডেটা টাইপ যা আমাদের সম্পর্কিত তথ্য ধারণ করার জন্য কাস্টম ডেটা স্ট্রাকচার তৈরি করতে দেয়। গো-তে স্ট্রাকচারগুলি C, এবং C++ এর মতো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের ক্লাসের মতো, কিন্তু তারা উত্তরাধিকার সমর্থন করে না। পরিবর্তে, তারা কোড পুনঃব্যবহার অর্জনের জন্য রচনার উপর নির্ভর করে। এই নিবন্ধটি গোলাঙ্গের কাঠামোগুলিকে কভার করে এবং কীভাবে আমরা স্ট্রাকট সদস্যদের ঘোষণা এবং অ্যাক্সেস করতে পারি।

গোলং এর একটি কাঠামো কি?

গোলং-এ, একটি কাঠামো হল একটি যৌগিক ডেটা টাইপ যা শূন্য বা ততোধিক নামযুক্ত ক্ষেত্র নিয়ে গঠিত, যার প্রত্যেকটির একটি নির্দিষ্ট প্রকার রয়েছে। একটি কাঠামোর ক্ষেত্রগুলি অন্যান্য কাঠামো, অ্যারে, ফাংশন বা ইন্টারফেস সহ যেকোনো ধরনের হতে পারে।







এখানে গোলং-এর একটি কাঠামোর উদাহরণ দেওয়া হল:



প্রকার ব্যক্তি গঠন {
পূর্ণনাম স্ট্রিং
বছরের পুরানো int
অবস্থান ঠিকানা
}
প্রকার ঠিকানা গঠন {
StreetName  স্ট্রিং
CityName    স্ট্রিং
দেশের নাম স্ট্রিং
}


এখানে আমরা একটি ব্যক্তি কাঠামো সংজ্ঞায়িত করেছি যার তিনটি ক্ষেত্র রয়েছে: পূর্ণনাম, বছরের পুরানো এবং অবস্থান। অবস্থান ক্ষেত্রটি নিজেই একটি কাঠামো যার তিনটি ক্ষেত্র রয়েছে: রাস্তার নাম, শহরের নাম এবং দেশের নাম।



গোলাঙ্গে কীভাবে কাঠামো ঘোষণা করবেন

আমরা ব্যবহার করে Golang একটি struct ঘোষণা করতে পারেন প্রকার কীওয়ার্ড স্ট্রাকটের নাম এর পরে সংজ্ঞায়িত করা হয়েছে প্রকার কীওয়ার্ড, এবং এর ক্ষেত্রগুলি কোঁকড়া ধনুর্বন্ধনীতে আবদ্ধ {} . Go এ একটি স্ট্রাকট ঘোষণা করার জন্য এখানে সিনট্যাক্স রয়েছে:





প্রকার StructName struct {
FieldName1 FieldType1
FieldName2 FieldType2
...
}


নীচে দুটি ক্ষেত্রের নাম এবং বয়সের স্ট্রিং এবং int যথাক্রমে দুটি ক্ষেত্রের নাম সহ ব্যক্তি নামের একটি স্ট্রাকট কীভাবে ঘোষণা করা যায় তার একটি উদাহরণ রয়েছে:

প্রকার ব্যক্তি গঠন {
নামের স্ট্রিং
বয়স int
}


উপরের কোডে, আমরা ব্যবহার করেছি প্রকার নামের একটি নতুন স্ট্রাকট ঘোষণা করতে কীওয়ার্ড ব্যক্তি দুটি ক্ষেত্র সহ নাম টাইপ স্ট্রিং এবং বয়স টাইপ int. ক্ষেত্রগুলি একটি দ্বারা বিভক্ত নতুন লাইন চরিত্র কিন্তু ক সেমিকোলন (;) তাদের আলাদা করার জন্যও ব্যবহার করা যেতে পারে।



গোলং-এ কীভাবে স্ট্রাকট মেম্বার অ্যাক্সেস করবেন

Go ভাষায় একটি struct উদাহরণের ক্ষেত্রগুলি অ্যাক্সেস করতে বিন্দু ('।') অপারেটর ব্যবহার করা হয়। এই ডট অপারেটর একটি ক্ষেত্রের নাম দ্বারা অনুসরণ করা হয়. একজন ব্যক্তি স্ট্রাকট ইনস্ট্যান্সের নাম এবং বয়সের ক্ষেত্রগুলি কীভাবে অ্যাক্সেস করবেন তার একটি উদাহরণ এখানে রয়েছে:

// নতুন একটি তৈরি কর ` ব্যক্তি ` নামের সাথে struct উদাহরণ 'কাশ' এবং বয়স 24
কাশ := ব্যক্তি { নাম: 'কাশ' , বয়স: 24 }

// এর ক্ষেত্রগুলিতে প্রবেশ করুন ` কাশ ` struct উদাহরণ
fmt.Println ( kash.name ) // আউটপুট: 'কাশ'
fmt.Println ( kash.age ) // আউটপুট: 24


উপরের কোডে, আমরা নামের সাথে kash নামে একটি নতুন Person struct ইন্সট্যান্স তৈরি করেছি কাশ এবং বয়স 24 . তারপরে আমরা ক্যাশ স্ট্রাকট ইনস্ট্যান্স ব্যবহার করে নাম এবং বয়স ক্ষেত্রগুলি অ্যাক্সেস করি ('।') অপারেটর এবং কনসোলে তাদের মুদ্রণ.

এটি লক্ষ্য করা গুরুত্বপূর্ণ যে একটি স্ট্রাকট ইন্সট্যান্সের ক্ষেত্রগুলি ডট নোটেশন ব্যবহার করে অ্যাক্সেস করা হয় এবং নয় তীর স্বরলিপি (->) অন্যান্য কিছু প্রোগ্রামিং ভাষায় ব্যবহৃত হয়। ডট নোটেশনটি গো-তে ধারাবাহিকভাবে স্ট্রাকটের ক্ষেত্রগুলি, সেইসাথে অন্যান্য ধরণের বৈশিষ্ট্য এবং পদ্ধতিগুলি অ্যাক্সেস করার জন্য ব্যবহার করা হয়।

গোলং-এ স্ট্রাকট মেম্বার ঘোষণা এবং অ্যাক্সেস করার উদাহরণ কোড

Go-তে Person struct ডিক্লেয়ার করার এবং এর মান স্ক্রিনে প্রিন্ট করার একটি সম্পূর্ণ উদাহরণ নিচে দেওয়া হল:

প্যাকেজ প্রধান
আমদানি 'fmt'
প্রকার ব্যক্তি গঠন {
নামের স্ট্রিং
বয়স int
}
ফাংশন প্রধান ( ) {
// নতুন একটি তৈরি কর ` ব্যক্তি ` নামের সাথে struct উদাহরণ 'কাশ' এবং বয়স 24
কাশ := ব্যক্তি { নাম: 'কাশ' , বয়স: 24 }
// প্রিন্ট করুন ` নাম ` এবং ` বয়স ` এর ` কাশ ` কনসোলে struct উদাহরণ
fmt.Printf ( 'নাম: %s \n ' , kash.name )
fmt.Printf ( 'বুড়া \n ' , kash.age )
}


উপরে লিখিত কোড, আমরা প্রথম ঘোষণা ব্যক্তি গঠন এই স্ট্রাকটে দুটি ক্ষেত্র রয়েছে যা নাম এবং বয়স। এর পরে, আমরা নামের সাথে kash নামে একটি নতুন Person struct ইনস্ট্যান্স তৈরি করেছি কাশ এবং বয়স 24 .

নাম এবং বয়স ক্ষেত্র প্রদর্শন করতে, আমরা ব্যবহার করুন fmt.Printf সঙ্গে ফাংশন %s এবং %d ফরম্যাট স্পেসিফায়ার যথাক্রমে নাম এবং বয়স ক্ষেত্র প্রিন্ট করতে।

চালানোর পরে, কোড নিম্নলিখিত আউটপুট কনসোলে প্রদর্শিত হবে:

কিভাবে ফাংশন আর্গুমেন্ট হিসাবে গঠন পাস

Go-তে একটি ফাংশন আর্গুমেন্ট হিসাবে একটি স্ট্রাকট পাস করার জন্য, আমাদের ফাংশন স্বাক্ষরে প্যারামিটার টাইপ হিসাবে স্ট্রাকট টাইপটি নির্দিষ্ট করতে হবে এবং তারপর ফাংশনটি কল করার সময় একটি আর্গুমেন্ট হিসাবে struct ইনস্ট্যান্স পাস করতে হবে।

উদাহরণ কোড

নীচের উদাহরণটি দেখায় যে কীভাবে Go ভাষায় একটি ফাংশনের আর্গুমেন্ট হিসাবে একটি Person struct উদাহরণ পাস করতে হয় এবং এর মানগুলি স্ক্রিনে প্রিন্ট করতে হয়:

প্যাকেজ প্রধান
আমদানি 'fmt'
// নামে একটি struct ঘোষণা করুন ` ব্যক্তি ` দুটি ক্ষেত্র সহ: ` নাম ` এবং ` বয়স `
প্রকার ব্যক্তি গঠন {
নামের স্ট্রিং
বয়স int
}
// ঘোষণা a ফাংশন নাম ` মুদ্রণ ব্যক্তি ` যে একটি লাগে ` ব্যক্তি ` গঠন হিসাবে একটি যুক্তি
func printPerson ( p ব্যক্তি ) {
fmt.Printf ( 'নাম: %s \n ' , p.নাম )
fmt.Printf ( 'বুড়া \n ' , পৃষ্ঠা )
}
ফাংশন প্রধান ( ) {
// নতুন একটি তৈরি কর ` ব্যক্তি ` নামের সাথে struct উদাহরণ 'কাশ' এবং বয়স 24
কাশ := ব্যক্তি { নাম: 'কাশ' , বয়স: 24 }
// পাস ` কাশ ` struct উদাহরণ ` মুদ্রণ ব্যক্তি ` ফাংশন
মুদ্রণ ব্যক্তি ( কাশ )
}


উপরের কোডে, আমরা প্রথমে দুটি ক্ষেত্র সহ Person struct ঘোষণা করেছি, নাম এবং বয়স . আমরা তারপর নামের একটি ফাংশন ঘোষণা মুদ্রণ ব্যক্তি যেটি একটি ব্যক্তি গঠনকে একটি যুক্তি হিসাবে নেয় এবং fmt.Printf ফাংশন ব্যবহার করে পর্দায় তার নাম এবং বয়স ক্ষেত্রগুলি প্রিন্ট করে।

মূল ফাংশনে, আমরা নামের সাথে kash নামে একটি নতুন Person struct ইন্সট্যান্স তৈরি করেছি কাশ এবং বয়স 24। তারপর আমরা printPerson ফাংশনে কাশ স্ট্রাকট ইনস্ট্যান্স পাস করি printPerson ফাংশন কল করে পাস করে কাশ যুক্তি হিসাবে।

উপরের কোডটি চালানোর পরে কনসোলে নিম্নলিখিত আউটপুট দেখা যাবে:

উপসংহার

গোলং-এ, স্ট্রাকচারগুলি জটিল ডেটা টাইপের প্রতিনিধিত্ব করতে পারে এবং সম্পর্কিত ডেটা এনক্যাপসুলেট করতে পারে। একটি কাঠামো এক বা একাধিক ক্ষেত্র দ্বারা গঠিত একটি ডেটা টাইপ, যার প্রত্যেকটির একটি নির্দিষ্ট নাম এবং প্রকার দেওয়া হয়। একটি কাঠামোর ক্ষেত্রগুলি অন্যান্য কাঠামো, অ্যারে, ফাংশন বা ইন্টারফেস সহ যেকোনো ধরনের হতে পারে। এই নিবন্ধটি বিস্তারিতভাবে Go স্ট্রাকচার নিয়ে আলোচনা করেছে, কাঠামো উপাদানগুলি ঘোষণা এবং অ্যাক্সেস করার বিষয়ে আরও তথ্যের জন্য নিবন্ধটি পড়ুন।