সুইফট 2 এবং তারপরের জন্য :
সুইফট 2 লুপের জন্য কেস প্যাটার্ন যুক্ত করে , এটি লুপের জন্য কাস্ট টাইপ করা আরও সহজ এবং নিরাপদ করে :
for case let button as AClass in view.subviews {
// do something with button
}
আপনি সুইফট ১.২ এবং এর আগে যা করতে পারেন তার থেকে এটি কেন ভাল ? কারণ কেস প্যাটার্নগুলি আপনাকে সংগ্রহের বাইরে আপনার নির্দিষ্ট ধরণের বাছাই করতে দেয়। এটি কেবলমাত্র আপনি যে ধরণের সন্ধান করছেন সেটির সাথেই এটি মেলে, সুতরাং আপনার অ্যারেতে যদি মিশ্রণ থাকে তবে আপনি কেবল একটি নির্দিষ্ট ধরণের ক্ষেত্রেই পরিচালনা করতে পারেন।
উদাহরণ স্বরূপ:
let array: [Any] = [1, 1.2, "Hello", true, [1, 2, 3], "World!"]
for case let str as String in array {
print(str)
}
আউটপুট:
Hello
World!
জন্য সুইফট 1.2 :
এই ক্ষেত্রে, আপনি ingালাই view.subviews
করছেন এবং করছেন না button
, সুতরাং আপনার পছন্দসই অ্যারেটিতে এটি খালি করা দরকার:
for button in view.subviews as! [AClass] {
// do something with button
}
দ্রষ্টব্য: অন্তর্নিহিত অ্যারে প্রকারটি যদি না হয় তবে এটি [AClass]
ক্রাশ হবে। এটিই আপনাকে জানিয়ে !
দিচ্ছে as!
। আপনি যদি এই ধরণের সম্পর্কে নিশ্চিত না হন তবে আপনি as?
alচ্ছিক বাঁধার পাশাপাশি শর্তসাপেক্ষ কাস্ট ব্যবহার করতে পারেন if let
:
if let subviews = view.subviews as? [AClass] {
// If we get here, then subviews is of type [AClass]
for button in subviews {
// do something with button
}
}
জন্য সুইফট 1.1 এবং তার আগে:
for button in view.subviews as [AClass] {
// do something with button
}
দ্রষ্টব্য: সাবভিউগুলি সমস্ত ধরণের না হলে এটি ক্রাশ হবে AClass
। উপরে তালিকাভুক্ত নিরাপদ পদ্ধতিটি সুইফটের পূর্ববর্তী সংস্করণগুলির সাথেও কাজ করে।
for button in view.subviews as [AClass]