ক্লোজার কী এবং এর ব্যবহার

ক্লোজার - সুইফট প্রোগ্রামিং (Swift Programming) - Computer Programming

393

Swift-এ ক্লোজার হলো কোড ব্লকের একটি বিশেষ ফর্ম যা একটি ফাংশনের মতো কাজ করে, কিন্তু এটি নামহীন বা অ্যানোনিমাস হতে পারে। ক্লোজার প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ, যা প্রোগ্রামারদের কোডকে সংক্ষিপ্ত, পুনঃব্যবহারযোগ্য, এবং ফাংশনাল প্রোগ্রামিংয়ের মতো স্টাইলে লিখতে সাহায্য করে। ক্লোজার Swift-এ প্রথম শ্রেণির সিটিজেন, অর্থাৎ ফাংশনের মতোই এদের পাস করা, রিটার্ন করা, বা ভেরিয়েবলে সংরক্ষণ করা যায়।


ক্লোজারের প্রকারভেদ

Swift-এ ক্লোজার তিন ধরনের হতে পারে:

  1. Global Function: এরা সাধারণত নাম সহ কোড ব্লক।
  2. Nested Function: ফাংশনের ভিতরে ফাংশন।
  3. Closure Expressions: অ্যানোনিমাস ক্লোজার যা কোডের ভিতরেই লেখা হয়, এবং সাধারণত সরল ও সংক্ষিপ্ত হয়।

ক্লোজারের সাধারণ গঠন

{ (parameters) -> ReturnType in
    // কোড ব্লক
}
  • parameters: ক্লোজারের ইনপুট প্যারামিটার।
  • ReturnType: ক্লোজারের আউটপুটের টাইপ।
  • in: ক্লোজারের প্যারামিটার লিস্ট এবং কোড ব্লকের মাঝে ব্যবহৃত কীওয়ার্ড।
  • কোড ব্লক: ক্লোজারের কার্যক্রম বা কাজ যা এক্সিকিউট হবে।

একটি ক্লোজারের উদাহরণ

let greet = { (name: String) -> String in
    return "Hello, \(name)!"
}

// ক্লোজার কল করা
let message = greet("Alice")
print(message)  // Output: "Hello, Alice!"
  • এখানে greet একটি ক্লোজার, যা একটি String প্যারামিটার গ্রহণ করে এবং একটি String রিটার্ন করে।
  • ক্লোজারটি "Hello, Alice!" আউটপুট দেয়, কারণ আমরা greet("Alice") কল করেছি।

ক্লোজারের সংক্ষিপ্ত রূপ (Shorthand Syntax)

Swift-এ ক্লোজারকে আরও সংক্ষিপ্তভাবে লেখা যায়। যদি ক্লোজারের প্যারামিটারের টাইপ এবং রিটার্ন টাইপ জানা থাকে, তাহলে সেগুলি বাদ দেয়া যায়।

let greet = { name in
    "Hello, \(name)!"
}

// ক্লোজার কল করা
let message = greet("Bob")
print(message)  // Output: "Hello, Bob!"
  • এখানে আমরা টাইপ ডিক্লেয়ার এবং return কীওয়ার্ড বাদ দিয়েছি, কারণ Swift এগুলো অনুমান করতে পারে।

ক্লোজার ব্যবহার করা: ফাংশনের প্যারামিটার হিসেবে

Swift-এ ক্লোজার প্রায়শই ফাংশনের প্যারামিটার হিসেবে ব্যবহার করা হয়। এটি কোডকে আরও সংক্ষিপ্ত এবং ফ্লেক্সিবল করে তোলে।

func performOperation(_ operation: (Int, Int) -> Int) {
    let result = operation(5, 3)
    print("Result: \(result)")
}

// অ্যাডিশন ক্লোজার পাস করা
performOperation({ (a, b) in a + b })  // Output: "Result: 8"

// মাল্টিপ্লিকেশন ক্লোজার পাস করা
performOperation({ (a, b) in a * b })  // Output: "Result: 15"
  • এখানে performOperation ফাংশনটি একটি ক্লোজার গ্রহণ করে, যা দুটি ইন্টিজার ইনপুট নিয়ে একটি ইন্টিজার আউটপুট দেয়।
  • আমরা এই ফাংশনে দুটি আলাদা ক্লোজার পাস করেছি: একটি অ্যাডিশন এবং একটি মাল্টিপ্লিকেশন অপারেশনের জন্য।

ট্রেইলিং ক্লোজার (Trailing Closure)

যখন একটি ক্লোজার ফাংশনের শেষ প্যারামিটার হিসেবে ব্যবহৃত হয়, তখন আমরা সেটিকে ট্রেইলিং ক্লোজার হিসেবে লিখতে পারি, যা কোডকে আরও পরিষ্কার করে।

performOperation { (a, b) in
    a - b
}  // Output: "Result: 2"
  • এখানে আমরা ট্রেইলিং ক্লোজার ব্যবহার করেছি, যা performOperation ফাংশনের শেষে এসেছে। এটি কোডকে আরও সরল ও পড়তে সহজ করে তোলে।

স্বয়ংক্রিয়ভাবে নির্ধারিত প্যারামিটার (Shorthand Argument Names)

Swift-এ ক্লোজারে প্যারামিটারগুলিকে সরাসরি $0, $1, $2 ইত্যাদি দিয়ে রেফার করা যায়, যখন প্যারামিটারের নাম উল্লেখ না করে কাজ করা যায়। এটি কোডকে আরও সংক্ষিপ্ত করে।

performOperation {
    $0 * $1
}  // Output: "Result: 15"
  • এখানে $0 প্রথম প্যারামিটার এবং $1 দ্বিতীয় প্যারামিটার হিসেবে ব্যবহার করা হয়েছে।

ক্লোজার ব্যবহার: Sort, Map, এবং Filter ফাংশনের সাথে

Swift-এ ক্লোজার প্রায়ই বিল্ট-ইন ফাংশন যেমন sort, map, এবং filter এর সাথে ব্যবহৃত হয়।

১. sort ফাংশন

let numbers = [5, 2, 8, 1, 3]
let sortedNumbers = numbers.sorted { $0 < $1 }
print(sortedNumbers)  // Output: [1, 2, 3, 5, 8]
  • এখানে, ক্লোজারটি ব্যবহার করে অ্যারে numbers এর ভ্যালুগুলি ছোট থেকে বড় সাজানো হয়েছে।

২. map ফাংশন

let numbers = [1, 2, 3, 4]
let squaredNumbers = numbers.map { $0 * $0 }
print(squaredNumbers)  // Output: [1, 4, 9, 16]
  • map ফাংশন প্রতিটি উপাদানকে ক্লোজারে উল্লেখিত কাজ অনুযায়ী পরিবর্তন করে একটি নতুন অ্যারে তৈরি করে।

৩. filter ফাংশন

let numbers = [1, 2, 3, 4, 5, 6]
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers)  // Output: [2, 4, 6]
  • filter ফাংশন একটি ক্লোজার ব্যবহার করে অ্যারের সেই উপাদানগুলো ফিল্টার করে যেগুলি শর্ত পূরণ করে (যেমন, জোড় সংখ্যা)।

উপসংহার

Swift-এ ক্লোজার হলো একটি শক্তিশালী টুল, যা প্রোগ্রামের কোডকে সংক্ষিপ্ত, পুনঃব্যবহারযোগ্য, এবং ফাংশনাল প্রোগ্রামিংয়ের মতো স্টাইলে লিখতে সহায়ক। ক্লোজারের ব্যবহার কোডকে আরও মডিউলার এবং সহজপাঠ্য করতে সহায়ক।

  • ফাংশনের প্যারামিটার হিসেবে ক্লোজার ব্যবহার, ট্রেইলিং ক্লোজার, এবং শর্তসাপেক্ষ লজিক বা অ্যারে প্রসেসিংয়ের জন্য ক্লোজার Swift প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ।
Content added By
Promotion

Are you sure to start over?

Loading...