সুইফটে গ্লোবাল ভেরিয়েবল: ধারণা ও বাস্তবায়ন
এপ্পলের ডকুমেন্টেশন অনুযায়ী, গ্লোবাল ভেরিয়েবল হলো যেসব ভেরিয়েবল যেকোনো ফাংশন, মেথড, ক্লোজার বা টাইপ কনটেক্সটের বাইরে সংজ্ঞায়িত হয়।
স্কোপ বোঝা
কল্পনা করুন দুটি সার্কেল: অভ্যন্তরীণ এবং বাহ্যিক। অভ্যন্তরীণ সার্কেলের ভেরিয়েবল শুধু সেটি এক্সেস করতে পারে, কিন্তু বাহ্যিক সার্কেলের ভেরিয়েবল দুটো সার্কেলই এক্সেস করতে পারে—এটিই গ্লোবাল স্কোপ।
ক্লাসে গ্লোবাল ভেরিয়েবল
class Student {
var section: String = "A" // গ্লোবাল প্রপার্টি
func getStudentData() {
// কিছু ফাংশন
}
}
section ক্লাসের মধ্যে কিন্তু ফাংশনের বাইরে থাকায় এটি গ্লোবাল প্রপার্টি। অ্যাক্সেস মডিফায়ার (private, public ইত্যাদি) ব্যবহার করাও যায়।
স্ট্রাকচার ব্যবহার করে ভালো পদ্ধতি
গ্লোবাল ভেরিয়েবল গুলো একটি স্ট্রাকচারে ক্যাপসুলেট করা সেরা অনুশীলন:
struct Student {
static let name: String = "Aman"
static let age: Int = 22
}
class Employee {
func getData() {
print(Student.age) // 22
print(Student.name) // "Aman"
}
}
সুবিধা: স্ট্রাকচারের স্ট্যাটিক প্রপার্টি গুলো নেমস্পেসড থাকে, নামের দ্বন্দ্ব এড়াতে সাহায্য করে এবং কোড সংগঠিত থাকে।