সুইফটে কাঠামো এবং শ্রেণীর মধ্যে পার্থক্য।

কমপক্ষে 6 মাসের অভিজ্ঞতার সাথে প্রতিটি দ্রুত বিকাশকারী স্ট্রাক্ট, এনাম এবং ক্লাস সম্পর্কে জানেন। প্রত্যেকে এগুলি কী, কখন এবং কোথায় ব্যবহার করবে তা না জেনে নিয়মিতভাবে এগুলি ব্যবহার করে। আমি এটিকে সহজ করার চেষ্টা করি।

চিত্র উত্স: স্টকসন্যাপ

মান প্রকার এবং রেফারেন্স প্রকার

তথ্য: ট্রিহাউস, অ্যাপল ডক

যখন এনামস, স্ট্রাক্টস এবং ক্লাসের কথা আসে তখন মান এবং ডেটা ধরণের মধ্যে পার্থক্যটি জানা গুরুত্বপূর্ণ important আপনি যখন একটি সংখ্যা বা কাঠামো তৈরি করেন, এটি একটি মান ধরণের এবং শ্রেণি একটি রেফারেন্স টাইপ।

  • মান প্রকার: কাঠামো, এনাম
  • রেফারেন্সের ধরন: ক্লাস

আপনি যখন আপনার অ্যাপ্লিকেশনটির চারপাশে কোনও শ্রেণি অবজেক্ট পাস করেন, আপনি আসলে সেই বস্তুর সাথে সংযোগ করছেন, সুতরাং আপনার প্রোগ্রামের বিভিন্ন অংশ আপনার অবজেক্টটি ভাগ করে নিতে এবং সংশোধন করতে পারে। আপনি যখন আপনার প্রোগ্রামের চারপাশে একটি তীর [বা এনাম] পাস করবেন তখন আপনার সেই কাঠামোর একটি অনুলিপি থাকবে। সুতরাং, কাঠামোগুলিতে পরিবর্তিত পরিবর্তনগুলি বিনিময় করা যায় না।

মান ধরণের একটি গুরুত্বপূর্ণ সুবিধা হ'ল তারা থ্রেডে সুরক্ষিত, যার জন্য কোনও সমন্বয় প্রয়োজন হয় না।
মান প্রকার এবং রেফারেন্স ধরণের সম্পর্কে আরও জানতে দয়া করে মান প্রকারের বনাম রেফারেন্স টাইপ সম্পর্কে আমার নিবন্ধটি পড়ুন।
Enums সম্পর্কে আরও জানতে তাত্ক্ষণিক Enums এ আমার নিবন্ধটি পড়ুন।
একটি শ্রেণীর উদাহরণ সাধারণত একটি বস্তু হিসাবে পরিচিত। ইনস্ট্যান্স শব্দটি ব্যবহার করা আরও ভাল কারণ আমরা স্ট্রুম এবং এনামের সাথেও ডিল করি।

শ্রেণী

ওওপি-তে, একটি শ্রেণি পৃথক অনুলিপি তৈরি করার পরিকল্পনা।

একটি শ্রেণি হ'ল বস্তুর (সদস্যের প্যারামিটার বা বৈশিষ্ট্যগুলি) তৈরি করার এবং আচরণের (সদস্যের কার্যাদি বা পদ্ধতি) তৈরি করার পরিকল্পনা (নির্দিষ্ট ডেটার কাঠামো)।

আমরা কীওয়ার্ডটি ব্যবহার করে ক্লাসটি সংজ্ঞায়িত করি।

গঠন

কাঠামো লেবেলিং এবং নমুনা তৈরির ক্ষেত্রে শ্রেণীর সাথে সমান।

আমরা স্ট্রাকচারাল কীওয়ার্ড ব্যবহার করে কাঠামোটিকে সংজ্ঞায়িত করি।

কাঠামো এবং শ্রেণীর মধ্যে সাধারণ কারণগুলি কী কী?

  • মানগুলি সংরক্ষণ করার জন্য বৈশিষ্ট্যগুলি সংজ্ঞায়িত করুন
  • কার্যকারিতা সরবরাহ করার উপায়গুলি নির্ধারণ করুন
  • স্ক্রিপ্টগুলি তাদের মানগুলিতে অ্যাক্সেস দেয় এমন সংজ্ঞা দেওয়ার জন্য স্ক্রিপ্টগুলি ব্যবহার করুন
  • স্টার্টআপের স্থিতি সামঞ্জস্য করতে স্টার্টআপগুলি সংজ্ঞায়িত করুন
  • সাধারণ বাস্তবায়ন ছাড়াও, তাদের কার্যকারিতা প্রসারিত করার জন্য এটি বাড়ানো হবে
  • কোনও নির্দিষ্ট ধরণের মানক কার্যকারিতা সরবরাহ করতে প্রোটোকলগুলিতে অভিযোজিত

শ্রেণিতে অতিরিক্ত বৈশিষ্ট্য রয়েছে যা অন্তর্ভুক্ত নেই:

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

বানান

আমরা ক্লাস কীওয়ার্ড এবং স্ট্রাক কীওয়ার্ড ব্যবহার করে একটি শ্রেণি সংজ্ঞায়িত করি। কাঠামো এবং শ্রেণি উভয়ের জন্য বাক্য গঠন একই রকম।

কাঠামোর প্রকারের সদস্য সূচক

সমস্ত কাঠামোর একটি স্ব-রেফারেল সদস্য-দীক্ষিত ইনিশিয়েটর থাকে, যা আপনি নতুন কাঠামোর দৃষ্টান্তগুলির সদস্যপদ বৈশিষ্ট্য আরম্ভ করতে ব্যবহার করতে পারেন। নতুন নমুনার বৈশিষ্ট্যের জন্য আপনি প্রাথমিক মান প্রাথমিক পাঠাতে পারেন:

কাঠামোর নির্ভুলতা
var প্রস্থ = 0
var উচ্চতা = 0
}
অ্যাক্সেস ভিগা = রেজোলিউশন (প্রস্থ: 640, উচ্চতা: 480)

মূর্ত প্রতীক হিসাবে পৃথক, শ্রেণীর অনুলিপিগুলি একটি প্রারম্ভিক মানক গ্রহণ করে না।

দ্রষ্টব্য: যদি কাঠামোর ভেরিয়েবলটি ব্যক্তিগত হয় তবে সদস্যের প্রাথমিক নামটি ব্যক্তিগত। এই ক্ষেত্রে, আমাদের অবশ্যই একটি সম্প্রদায় ভিত্তিক স্টার্টআপ প্রোগ্রাম সরবরাহ করতে হবে।

এগুলি কখন এবং কোথায় ব্যবহার করা উচিত?

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

মান প্রকার এবং রেফারেন্স ধরণের সম্পর্কে আরও জানতে দয়া করে মান প্রকারের বনাম রেফারেন্স টাইপ সম্পর্কে আমার নিবন্ধটি পড়ুন।

আমি মনে করি আমাদের কাঠামোটি ব্যবহার করা দরকার কারণ স্ট্রাকচারটি যদি খুব বড় হয়ে যায় বা উত্তরাধিকারের প্রয়োজন হয় তবে তারা ক্লাসগুলির জটিলতা এবং হ্রাস উল্লেখযোগ্যভাবে হ্রাস করতে পারে।

  • কাঠামোগুলি অনেক বেশি নিরাপদ এবং ত্রুটিমুক্ত, বিশেষত বহুমুখী পরিবেশে। দ্রুত মানের ধরণের ব্যাক আপ নেওয়া হয়। প্রক্রিয়াটিতে প্রতিটি থ্রেডের নিজস্ব মান থাকে, সুতরাং অন্য কোনও মান আপনার মানের ধরণটি সরাসরি অ্যাক্সেস করতে পারে না। সুতরাং, রেসের শর্তগুলির মধ্যে কোনও জটিলতা নেই, তালা, লক বা কোনও সম্পর্কিত সিঙ্ক্রোনাইজেশন।
  • আপনি যদি ডেটা টাইপ চান ক্লাস ব্যবহার করুন। আপনি যদি মান ধরণের চান তবে সেলাই ব্যবহার করুন।
  • যদিও সামগ্রী এবং এনাম উত্তরাধিকার সমর্থন করে না, তারা প্রোটোকল ভিত্তিক প্রোগ্রামিংয়ের জন্য দুর্দান্ত। সাবক্লাস সুপারক্লাস থেকে সমস্ত প্রয়োজনীয় এবং অযাচিত ফাংশন উত্তরাধিকার সূত্রে প্রাপ্ত এবং একটি খারাপ প্রোগ্রামিং অনুশীলন। প্রোটোকল ভিত্তিক সফ্টওয়্যার ধারণাটি ব্যবহার করা ভাল pre
  • শ্রেণি heritageতিহ্যকে সমর্থন করে। একটি শ্রেণি হল একটি রেফারেন্স টাইপ এবং মেমরির পুলে সঞ্চিত, যা পারফরম্যান্সের দিক থেকে কাঠামোর চেয়ে ধীরে ধীরে ক্লাস তৈরি করে। শ্রেণিকক্ষের বিপরীতে, একটি কাচের কাঠামো তৈরি করা হয়। সুতরাং, কাঠামোর গতি বাড়ানো (এবং ধ্বংস করা) শ্রেণীর চেয়ে দ্রুত is কাঠামো যদি বিতরণ শ্রেণীর সদস্য না হয়, যা অন্যান্য বিষয়গুলির মধ্যে থেকে সংগ্রহ করা হয়।
  • ব্যয়গুলির ধরণের গতিশীল মেমরি বা গণনা ডেটা বরাদ্দ করার দরকার নেই, এটি উভয়ই ব্যয়বহুল লেনদেন। একই সময়ে, মানের ধরণগুলি স্থিতিভাবে প্রেরণ করা হয়। এগুলি মান ধরণের ক্ষেত্রে পারফরম্যান্সের ক্ষেত্রে একটি দুর্দান্ত সুবিধা সরবরাহ করে।

অবশ্যই পড়ুন: সামগ্রী এবং শ্রেণীর মধ্যে পছন্দ - অ্যাপল ডক

উপভোগ করুন !!

আপনি যদি এই পোস্টটি পড়তে পছন্দ করেন তবে দয়া করে এটি অন্যদের সাথে ভাগ করুন এবং কিছু তথ্য ভাগ করুন যাতে তারা এটি ভাগ করতে পারে

মিড-নিবন্ধের নিবন্ধগুলির জন্য আপনি আমাকে অনুসরণ করতে পারেন। লিঙ্কডইনে আমার সাথে যোগাযোগ করুন।

আপনার কোনও মন্তব্য, প্রশ্ন বা টিপস থাকলে নিচে মন্তব্য বিভাগে বিনা দ্বিধায় পোস্ট করুন!