.চ্ছিক বাঁধাই
সুইফট 3 এবং 4
var booleanValue : Bool? = false
if let booleanValue = booleanValue, booleanValue {
print("bound booleanValue: '\(booleanValue)'")
}
সুইফট 2.2
var booleanValue : Bool? = false
if let booleanValue = booleanValue where booleanValue {
print("bound booleanValue: '\(booleanValue)'")
}
কোডটি যদি থাকে এবং ব্লকটি কার্যকর হয় না let booleanValue = booleanValue
returns যদি তা না হয় তবে এই কোডটি প্রকারের নামে একটি নতুন ভেরিয়েবল সংজ্ঞায়িত করে (বিকল্পের পরিবর্তে )।false
booleanValue
nil
if
booleanValue
nil
booleanValue
Bool
Bool?
সুইফট 3 এবং 4 কোড booleanValue
(এবং স্যুইফ্ট 2.2 কোড where booleanValue
) নতুন booleanValue: Bool
ভেরিয়েবলের মূল্যায়ন করে । যদি এটি সত্য হয় তবে if
ব্লকটি booleanValue: Bool
স্কোপে নতুন সংজ্ঞায়িত ভেরিয়েবলের সাথে কার্যকর করে (অপশনটিকে if
ব্লকের মধ্যে আবার সীমাবদ্ধ মানটি উল্লেখ করার অনুমতি দেয় )।
দ্রষ্টব্য: boundচ্ছিক ধ্রুবক / পরিবর্তনশীল যেমন যেমন সীমাবদ্ধ স্থির / ভেরিয়েবলের নামকরণ করা এটি একটি সুইফট কনভেনশন let booleanValue = booleanValue
। এই কৌশলটিকে ভেরিয়েবল শেডিং বলা হয় । আপনি কনভেনশন থেকে বিরতি দিতে এবং এরকম কিছু ব্যবহার করতে পারেন let unwrappedBooleanValue = booleanValue, unwrappedBooleanValue
। আমি কী ঘটছে তা বুঝতে সাহায্য করার জন্য এটি নির্দেশ করছি। আমি পরিবর্তনশীল ছায়া গো ব্যবহার করার পরামর্শ দিচ্ছি।
অন্যান্য পন্থা
নীল কোলেসেসিং
এই নির্দিষ্ট ক্ষেত্রে নীল কোলেসিং স্পষ্ট
var booleanValue : Bool? = false
if booleanValue ?? false {
print("optional booleanValue: '\(booleanValue)'")
}
চেক করা false
ততটা পরিষ্কার নয়
var booleanValue : Bool? = false
if !(booleanValue ?? false) {
print("optional booleanValue: '\(booleanValue)'")
}
দ্রষ্টব্য: if !booleanValue ?? false
সংকলন করে না।
Wচ্ছিকভাবে মোড়ক আনতে হবে (এড়ানো)
জোর করে মোড়ক দেওয়া সম্ভাবনা বাড়িয়ে দেয় যে কেউ ভবিষ্যতে এমন একটি পরিবর্তন আনবে যা সংকলন করলেও রানটাইমের সময় ক্র্যাশ হয়ে যায়। অতএব, আমি এই জাতীয় কিছু এড়াতে চাই:
var booleanValue : Bool? = false
if booleanValue != nil && booleanValue! {
print("optional booleanValue: '\(booleanValue)'")
}
একটি সাধারণ পদ্ধতি
যদিও স্ট্যাক ওভারফ্লো প্রশ্ন বিশেষভাবে জিজ্ঞেস করে একটি চেক কিভাবে Bool?
হয় true
একটি মধ্যে if
বিবৃতি, এটা সত্য মিথ্যা বা অন্যান্য এক্সপ্রেশন সঙ্গে মোড়ানো মান মিশ্রন চেক কিনা একটি সাধারণ পদ্ধতির শনাক্ত করতে সহায়ক।
অভিব্যক্তিটি আরও জটিল হয়ে উঠলে, আমি অন্যান্য পদ্ধতির তুলনায় optionচ্ছিক বাঁধাইয়ের পদ্ধতিকে আরও নমনীয় এবং বোঝার পক্ষে সহজ বোধ করি। উল্লেখ্য কোনো ঐচ্ছিক প্রকার (সঙ্গে যে ঐচ্ছিক বাঁধাই কাজ Int?
, String?
, ইত্যাদি)।