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

অ্যারে এবং Tuples

জাভাস্ক্রিপ্টে, অ্যারেতে যেকোনো ধরনের উপাদান থাকতে পারে এবং গতিশীলভাবে বৃদ্ধি বা সঙ্কুচিত হতে পারে। টাইপস্ক্রিপ্ট স্ট্যাটিক টাইপ চেকিং যোগ করে যাতে সংগ্রহগুলি একজাত থাকে বা একটি নির্দিষ্ট টাইপ কাঠামোকে সম্মান করে।


অ্যারে (একজাতীয় সংগ্রহ)

TypeScript-এ, একই ধরনের উপাদান সমন্বিত অ্যারের ধরন নির্ধারণ করার জন্য দুটি সমতুল্য উপায় রয়েছে:

  1. বর্গাকার বন্ধনী দ্বারা অনুসৃত উপাদান প্রকার ব্যবহার করা ([]):

    TS
    const numbers: number[] = [1, 2, 3];
    const strings: string[] = ['a', 'b', 'c'];
  2. জেনেরিক Array<T> প্রকার ব্যবহার করা:

    TS
    const numbers: Array<number> = [1, 2, 3];

উভয় বাক্য গঠন সম্পূর্ণ বৈধ, কিন্তু প্রথমটি (type[]) প্রচলিত এবং সবচেয়ে সাধারণ শৈলী। আপনি যদি একটি অবৈধ মান সন্নিবেশ করার চেষ্টা করেন (যেমন numbers.push("hello") একটি number[] অ্যারেতে), TypeScript একটি কম্পাইল-টাইম ত্রুটি তৈরি করবে।


Tuples (স্থির-দৈর্ঘ্য অ্যারে)

একটি টুপল হল একটি বিশেষ ধরনের অ্যারে যাতে একটি নির্দিষ্ট সংখ্যক উপাদান থাকে যেখানে প্রতিটি উপাদানের অবস্থানের উপর ভিত্তি করে একটি পূর্বনির্ধারিত নির্দিষ্ট প্রকার থাকে।

উদাহরণস্বরূপ, একটি স্থিতি কোড (সংখ্যা) এবং একটি বার্তা (স্ট্রিং) দিয়ে তৈরি একটি HTTP প্রতিক্রিয়া সংরক্ষণ করতে:

TS
const response: [number, string] = [200, 'OK'];

এই ক্ষেত্রে:

  • প্রথম উপাদান (response[0]) অবশ্যই একটি number হতে হবে।
  • দ্বিতীয় উপাদান (response[1]) অবশ্যই একটি string হতে হবে।
  • অ্যারেটি অবশ্যই 2টি উপাদান দিয়ে শুরু করতে হবে।

শুধুমাত্র পঠনযোগ্য টিপলস (readonly)

টাইপস্ক্রিপ্টের টিপল সম্পর্কে একটি গুরুত্বপূর্ণ বিশদ হল যে রানটাইমে তারা সাধারণ জাভাস্ক্রিপ্ট অ্যারে। এর মানে হল .push() বা .pop() এর মত পরিবর্তনশীল পদ্ধতিগুলি প্রযুক্তিগতভাবে উপলব্ধ এবং আংশিকভাবে টাইপ চেক বাইপাস করে টিপল দৈর্ঘ্য পরিবর্তন করতে পারে৷

এই আচরণ প্রতিরোধ করতে এবং সত্যিকারের অপরিবর্তনীয়তা প্রয়োগ করতে, আমরা readonly সংশোধক ব্যবহার করতে পারি:

TS
const point: readonly [number, number] = [10, 20];
// point.push(30); // Compile-time error!

নিজে চেষ্টা করে দেখুন

অনুশীলনী 1: সংখ্যার অ্যারে

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

একটি অ্যারে নামক স্কোর ঘোষণা করুন যাতে শুধুমাত্র সংখ্যা থাকে এবং 90, 85 এবং 95 মান দিয়ে শুরু হয়। অ্যারের জন্য স্পষ্ট টাইপ টীকা ব্যবহার করুন। কোন প্রকার ব্যবহার করবেন না।

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

সিনট্যাক্স কনস্ট স্কোর ব্যবহার করুন: সংখ্যা[] = ... বা অ্যারে<number>।

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

ব্যায়াম 2: 3D স্থানাঙ্ক Tuple

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

একটি টিপল নামক পয়েন্ট ঘোষণা করুন যা একটি 3D স্থানাঙ্ক (X, Y, Z-এর জন্য তিনটি সংখ্যা) প্রতিনিধিত্ব করে এবং 10, 20, 30 মান দিয়ে আরম্ভ করা হয়। স্পষ্ট টাইপ টীকা ব্যবহার করুন।

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

টিপল টাইপ অবশ্যই [সংখ্যা, সংখ্যা, সংখ্যা] হতে হবে।

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

ব্যায়াম 3: অবস্থান তথ্য Tuple

ব্যায়াম#ts.m1.l2.e3
প্রচেষ্টা: 0লোড হচ্ছে...

লোকেশন ইনফো নামের একটি টিপল ঘোষণা করুন যা এর নামের সাথে একটি ভৌগলিক স্থানাঙ্ক উপস্থাপন করে। এতে অবশ্যই থাকতে হবে: অক্ষাংশ (সংখ্যা), দ্রাঘিমাংশ (সংখ্যা) এবং শহরের নাম (স্ট্রিং)। এটিকে 41.9028, 12.4964 এবং 'রোম' মান দিয়ে শুরু করুন।

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

তিনটি উপাদান সহ একটি টিপল সংজ্ঞায়িত করতে সিনট্যাক্স ব্যবহার করুন: [সংখ্যা, সংখ্যা, স্ট্রিং]।

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

ব্যায়াম 4: লগ এন্ট্রি Tuple

ব্যায়াম#ts.m1.l2.e4
প্রচেষ্টা: 0লোড হচ্ছে...

লগ লাইনের প্রতিনিধিত্বকারী logEntry নামে একটি টিপল ঘোষণা করুন। এটি অবশ্যই ক্রমানুসারে থাকতে হবে: একটি টাইমস্ট্যাম্প (সংখ্যা), একটি তীব্রতা স্তর (স্ট্রিং), এবং একটি ত্রুটি বার্তা (স্ট্রিং)৷ টাইমস্ট্যাম্প 1716300000, স্তর 'INFO', এবং 'অ্যাপ্লিকেশন শুরু হয়েছে' বার্তা দিয়ে এটি শুরু করুন।

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

একটি তিন-উপাদান টিপল সংজ্ঞায়িত করতে সিনট্যাক্স ব্যবহার করুন: [সংখ্যা, স্ট্রিং, স্ট্রিং] এবং নির্দিষ্ট মান নির্ধারণ করুন।

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