একটি eitherচ্ছিক হয় সেট করা হয় না সেট-সেট হয় (শূন্য বা শূন্য নয়) ... আমাদের একটি গুরুত্বপূর্ণ সিদ্ধান্ত রেখে। "আমাদের কোডটি কীভাবে লিখতে হবে যাতে এটি দুটি উভয় রাজ্যেরই সঠিকভাবে কাজ করতে পারে?" যেভাবে আমরা মোড়কে আছি করার আমাদের জন্য সিদ্ধান্ত নেয়।
এমন অনেকগুলি পন্থা রয়েছে যা আপনি একটি সেট না করা optionচ্ছিক মোকাবেলার জন্য ব্যবহার করতে পারেন।
- ক্রাশ!
- কোনও কিছুর কাছে মানটি ডিফল্ট করুন - যদি এটি সেট না করা থাকে।
- অত্যন্ত শৃঙ্খলার ব্যর্থ অর্থাত কিছুই করতে, কিন্তু যদি মান সেট করা হয়, তাহলে এটি নির্ধারণ করুন।
- অত্যন্ত শৃঙ্খলার ব্যর্থ অর্থাত কিছুই করতে অবশ্য যদি মান সেট করা হয় ... কিছু (এটা শুধু একটি একক নিয়োগ চেয়ে থাকবে)।
নীচে 4 টি পন্থা রয়েছে
জোর করে আন-র্যাপিং ব্যবহার করা ক্র্যাশ হয়ে যাবে যদি আপনার কোনও মান না থাকে। আপনি যদি এই মানটি গুরুত্ব সহকারে গুরুত্বের সাথে রাখেন তবে মুভিটির শিরোনাম (প্রতিটি সিনেমার একটি নাম থাকতে হবে) You !জোর করে আন-র্যাপিংয়ের জন্য ব্যবহৃত হয়।
movieTitle = movie.title!
নীল কোলেসিং ব্যবহার করা অন্য উপায় যা আপনাকে আরও নিয়ন্ত্রণ প্রদান করবে , মানে মান সেট না করা থাকলে এটি ক্রাশ হবে না এবং এটি সেট না করা থাকলে 'এটি কিছুই সেট করবে না' ... এটি আপনি যা বলবেন তাই করবে উদাহরণস্বরূপ, কোনও নাম সেট না থাকলে এটি শিরোনামহীন_মোভিতে মুভিটির নাম ডিফল্ট / সেট করে । ??নীল coalescing জন্য ব্যবহৃত হয়।
var movieTitle = movie.title ?? "untitled_Movie"
Youচ্ছিক চেইনিং ব্যবহার করা আপনার কোনও মান না থাকলে কিছুই করবে না এবং আপনার মান থাকলে মান সেট করবে । আপনি এমন কোনও কিছুর জন্য এটি করেন যা এর মান সেট করা অতীব গুরুত্বের নয় যেমন আপনার অভিনেতার এজেন্টের নাম । ?alচ্ছিক শৃঙ্খলা জন্য ব্যবহৃত হয়।
let agent = movie.leadActor?.agent
let agent = movie.leadActor!.agent
ব্যবহার if-let(বা guardযার দুটি ভিন্ন ধরনের হয় ঐচ্ছিক বাঁধাই ) আপনি দেব আরও নিয়ন্ত্রণ , এটা যদি মান সেট না করা হয় বিপর্যস্ত করা হবে না। মানটি সেট করা থাকলে আপনি কিছু করতে পারেন। যদি এটি সেট না করা থাকে তবে আপনি একটি elseবিবৃতি যুক্ত করতে পারেন ।
if let supportingActor = movie.supportingActor{
print(" The supporting actor is \(supportingActor)}
এটি মোড়ানোর জন্য সর্বাধিক ব্যবহৃত উপায়, কারণ জোর করে আন-র্যাপিং কিছুটা নিরুৎসাহিত করা হয়। কেন এটি নিরুৎসাহিত করা হয়েছে সে সম্পর্কে আরও আলোচনার জন্য এখানে দেখুন । মধ্যে একটি ভাল তুলনা জন্য guardএবং if-letদেখুনguard vs. if-let
সাইড নোট:
Ptionচ্ছিক বাঁধাই এবং chaচ্ছিক শৃঙ্খলা সাধারণত একসাথে ব্যবহৃত হয়:
if let agent = movie.leadActor?.agent {
ContactInfo = agent.phoneNumber
}