পুনরাবৃত্তিকারী

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

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

ইটারেটরের দুটি মেথড রয়েছে: boolean hasNext() এবং Object next() । গুগল অ্যাডস স্ক্রিপ্টগুলো গুগল অ্যাডস এনটিটিগুলো ফেচ করার জন্য ইটারেটর প্যাটার্ন ব্যবহার করে।

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

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();

গুগল অ্যাডস এনটিটিগুলোর একটি ইটারেটর পেতে হলে, আপনাকে প্রথমে একটি সিলেক্টর তৈরি করতে হবে।