ইটারেটর

ইটারেটর হল একটি সাধারণ প্রোগ্রামিং প্যাটার্ন যা অবজেক্টের তালিকা অতিক্রম করার জন্য ব্যবহৃত হয় যখন

  • তালিকার সাইজ শুরু থেকে জানা নাও থাকতে পারে।
  • একবারে মেমরিতে সম্পূর্ণ তালিকা লোড করলে তা অত্যধিক রিসোর্স ইনটেনসিভ বলে প্রমাণিত হতে পারে।

ইটারেটর দুটি পদ্ধতি প্রকাশ করে: boolean hasNext() এবং Object next()। Google Ads স্ক্রিপ্ট, Google Ads এন্টিটি ফেচ করার জন্য ইটারেটর প্যাটার্ন ব্যবহার করে।

ফাংশনের দিক থেকে, ইটারেটর রেগুলার অ্যারে থেকে খুব বেশি আলাদা নয় এবং আপনার কোডকে আরও সংক্ষিপ্ত করতে পারে। অ্যারে ট্রাভার্স করে এমন কোডের তুলনা করুন:

for (var i = 0; i < myArray.length; i++) {
  let myObject = myArray[i];
}

ইটারেটর ট্রাভার্স করে এমন কোড সহ:

while (myIterator.hasNext()) {
  let myObject = myIterator.next();
}

নিম্নলিখিত কোডটি আপনার অ্যাকাউন্টের সমস্ত সার্চ এবং ডিসপ্লে ক্যাম্পেন জুড়ে ইটারেটরের ব্যবহার দেখায়:

var campaignIterator = AdsApp.campaigns().get();

while (campaignIterator.hasNext()) {
  let campaign = campaignIterator.next();
  console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
      `budget=${campaign.getBudget().getAmount()}`);
}

এছাড়াও, আপনি বিল্ট-ইন জাভাস্ক্রিপ্ট ইটারেশন ব্যবহার করতে পারেন:

for (const campaign of AdsApp.campaigns()) {
  console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
      `budget=${campaign.getBudget().getAmount()}`);
}

কোনও সিলেক্টরে withLimit() প্রয়োগ করলে totalNumEntities()-এর ভ্যালু পরিবর্তন হয় না। নিম্নলিখিত স্নিপেটে x এবং y-এর ভ্যালু একই হবে:

var x = AdsApp.keywords().get().totalNumEntities();
var y = AdsApp.keywords().withLimit(5).get().totalNumEntities();

Google Ads এন্টিটির Iterator পেতে, আপনাকে প্রথমে একটি Selector তৈরি করতে হবে।