Swift 5.5 এবং তার পরবর্তী সংস্করণগুলোতে async এবং await ব্যবহার করে কনকারেন্ট কোড লেখা সহজ এবং পাঠযোগ্য করা হয়েছে। এটি অ্যাসিনক্রোনাস কাজগুলিকে আরও সহজভাবে ম্যানেজ করতে দেয়, যেখানে কোড সিঙ্ক্রোনাসের মতোই দেখায়।
async এবং await কী?
async: ফাংশনের সংজ্ঞায়asyncকীওয়ার্ড ব্যবহার করে এটি নির্দেশ করা হয় যে ফাংশনটি অ্যাসিনক্রোনাস। এটি টাস্ক সম্পন্ন করতে সময় নেয় এবং অন্য ফাংশনকেawaitব্যবহার করে এটি কল করতে হয়।await:awaitকীওয়ার্ড ব্যবহার করেasyncফাংশনের কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করা হয়।
উদাহরণ: async এবং await ব্যবহার
import Foundation
func fetchData() async -> String {
// কিছু ডেটা ফেচ করা হচ্ছে, যা অ্যাসিনক্রোনাস হতে পারে
return "Data fetched"
}
func processData() async {
let data = await fetchData()
print(data)
}
// Task-এ async কাজ চালানো হচ্ছে
Task {
await processData()
}
fetchDataএকটি অ্যাসিনক্রোনাস ফাংশন যা ডেটা রিটার্ন করে।processDataফাংশনawaitব্যবহার করেfetchDataফাংশনের কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করে এবং তারপর প্রিন্ট করে।
async এবং await এর সুবিধা
- সহজ পঠনযোগ্য কোড: অ্যাসিনক্রোনাস কাজগুলো সিঙ্ক্রোনাস কোডের মতোই দেখতে হয়, যা কোডকে আরও ক্লিন এবং সহজপাঠ্য করে।
- ডেটা হ্যান্ডলিং: ডেটা ফেচিং বা API কলের মতো অ্যাসিনক্রোনাস কাজগুলি সঠিকভাবে পরিচালিত হয়।
- কনকারেন্সি সহজ করা: কনকারেন্ট কাজের সময় থ্রেড ম্যানেজমেন্ট বা কমপ্লেক্স কনকারেন্ট কোডিং কৌশল ব্যবহার না করেও কাজ করা যায়।
ব্যবহারিক উদাহরণ: API কল
import Foundation
func fetchWeatherData() async throws -> String {
let url = URL(string: "https://api.weather.com/data")!
let (data, _) = try await URLSession.shared.data(from: url)
return String(data: data, encoding: .utf8) ?? "No data"
}
Task {
do {
let weatherData = try await fetchWeatherData()
print(weatherData)
} catch {
print("Error fetching data: \(error)")
}
}
- এখানে,
fetchWeatherDataAPI থেকে ডেটা ফেচ করে, যা একটি অ্যাসিনক্রোনাস ফাংশন। awaitএবংtryব্যবহার করে এটি চালানো হচ্ছে, এবং ডেটা ফেচ হওয়ার পর সেটি প্রিন্ট করা হচ্ছে।
সংক্ষেপে
Swift-এ async এবং await ব্যবহার করে অ্যাসিনক্রোনাস কোড লেখা সহজ এবং কার্যকরী। এটি ফাংশনাল প্রোগ্রামিং এবং কনকারেন্ট প্রোগ্রামিং-এর জন্য একটি শক্তিশালী টুল, যা কোডকে দ্রুত, সহজ এবং সুগঠিত করে তোলে।
Content added By