Swift-এ ইনআউট প্যারামিটার (inout) ব্যবহার করে ফাংশনের ভিতরে প্যারামিটার পরিবর্তন করা যায় এবং সেই পরিবর্তন মূল ভেরিয়েবলে প্রতিফলিত হয়। সাধারণত, Swift-এ ফাংশনের প্যারামিটারগুলো ডিফল্টভাবে কপিপাস হয়, অর্থাৎ ফাংশনের ভিতরে প্যারামিটার পরিবর্তন করলেও তা মূল ভেরিয়েবলে পরিবর্তন ঘটায় না। কিন্তু, inout ব্যবহার করে, আপনি একটি ভেরিয়েবলের রেফারেন্স পাস করতে পারেন এবং ফাংশনের ভিতরে সেই ভেরিয়েবলের মান পরিবর্তন করলে সেটি মূল ভেরিয়েবলে প্রভাব ফেলে।
inout প্যারামিটারের গঠন
func functionName(parameter: inout Type) {
// ফাংশনের কাজ বা কার্যক্রম
}
parameter: inout Type: ফাংশনের প্যারামিটারটিinoutহিসেবে ডিফাইন করা হয়। এটি দেখায় যে এই প্যারামিটারটি একটি ভেরিয়েবল রেফারেন্স হিসাবে পাস হবে, এবং ফাংশনের ভিতরে এর মান পরিবর্তন করা যাবে।- ফাংশন কল করার সময়,
inoutপ্যারামিটার পাস করতে হলে ভেরিয়েবলের আগে&চিহ্ন ব্যবহার করতে হয়।
inout প্যারামিটার সহ একটি উদাহরণ
func increment(number: inout Int) {
number += 1
}
var value = 10
increment(number: &value)
print(value) // Output: 11
- এখানে,
incrementফাংশনটিnumberনামের একটিinoutপ্যারামিটার গ্রহণ করে। এটি সেই প্যারামিটারের মান ১ করে বৃদ্ধি করে। - ফাংশন কল করার সময়
valueভেরিয়েবলটি&valueহিসেবে পাস করা হয়েছে, যা মূল ভেরিয়েবলের রেফারেন্স পাস করে। - ফাংশনটি
numberএর মান পরিবর্তন করলেvalueএর মানও পরিবর্তিত হয়, এবং আউটপুটে"11"দেখা যায়।
inout প্যারামিটারের আরও উদাহরণ
দুটি ভেরিয়েবলের মান অদলবদল (Swapping Two Values)
func swapValues(_ a: inout Int, _ b: inout Int) {
let temp = a
a = b
b = temp
}
var x = 5
var y = 10
swapValues(&x, &y)
print("x: \(x), y: \(y)") // Output: "x: 10, y: 5"
- এখানে,
swapValuesফাংশনটি দুটিinoutপ্যারামিটার (aএবংb) গ্রহণ করে এবং তাদের মান অদলবদল করে। xএবংyএর মান পাস করার সময়&ব্যবহার করা হয়েছে।- ফাংশন এক্সিকিউট করার পর,
xএবংyএর মান পরিবর্তিত হয়ে"x: 10, y: 5"আউটপুটে দেখা যায়।
কেন এবং কখন inout প্যারামিটার ব্যবহার করবেন
- মূল ভেরিয়েবলের মান পরিবর্তন করা: যখন আপনি একটি ফাংশনের ভিতরে কাজ করে মূল ভেরিয়েবলের মান পরিবর্তন করতে চান, তখন
inoutপ্যারামিটার ব্যবহার করা হয়। - পারফরম্যান্স বৃদ্ধি: যখন বড় ডেটা বা অবজেক্ট পাস করতে হয়, তখন রেফারেন্স পাস করা আরও কার্যকর হতে পারে কারণ এটি মেমোরির ব্যবহার কমায়।
inout প্যারামিটার ব্যবহারের সতর্কতা
inoutপ্যারামিটার ব্যবহার করার সময় সাবধান হতে হবে, কারণ এটি মূল ভেরিয়েবল পরিবর্তন করে। এটি কোডের জটিলতা বাড়াতে পারে এবং প্রোগ্রামে ভুল হতে পারে যদি ভেরিয়েবলের পরিবর্তন সঠিকভাবে ট্র্যাক না করা হয়।- একটি ফাংশনে
inoutপ্যারামিটার পাস করতে গেলে অবশ্যই ভেরিয়েবলের আগে&চিহ্ন ব্যবহার করতে হবে, যাতে প্রোগ্রাম বুঝতে পারে যে এটি একটি রেফারেন্স।
উপসংহার
Swift-এ inout প্যারামিটার একটি শক্তিশালী টুল, যা ফাংশনের ভিতরে ভেরিয়েবল পরিবর্তন করতে এবং সেই পরিবর্তন মূল ভেরিয়েবলে প্রতিফলিত করতে সহায়ক। এটি পারফরম্যান্স এবং কার্যকারিতা বাড়াতে পারে, তবে এটি ব্যবহার করার সময় সতর্ক থাকতে হবে, যাতে কোড আরও জটিল না হয়ে যায়।
Read more