Optional Binding क्या है
Optional binding सुरक्षित रूप से optional box के अंदर झांकना है और सिर्फ वहां मौजूद चीज़ उपयोग करना अगर असल में कुछ है।
In this page:
Syntax
if let unwrapped = optionalValue {
// use unwrapped
} else {
// optionalValue was nil
}
if let a = optionalA, let b = optionalB { }
Basic if let Binding
if let एक optional unwrap करने की कोशिश करता है, इसका block सिर्फ तब चलाते हुए जब एक value असल में मौजूद हो, उस value को एक नए constant से bound करते हुए।
उदाहरण: Basic if let Binding
// Declare a constant `possibleName` (a `String?`), set to `"Taylor"`
let possibleName: String? = "Taylor"
// If `possibleName` has a value, bind it to `name`
if let name = possibleName {
// Print "Hello, \(name)!" to the console
print("Hello, \(name)!")
// Otherwise, run this branch
} else {
// Print "No name provided" to the console
print("No name provided")
}
Login to try C/C++/Java/PHP code in the editor
Binding Multiple Optionals at Once
कई optionals एक साथ एक single if let में unwrap किए जा सकते हैं, commas से अलग -- block सिर्फ तब चलता है जब उन सभी के पास values हों।
उदाहरण: Binding Multiple Optionals at Once
// Declare a constant `firstName` (a `String?`), set to `"Ada"`
let firstName: String? = "Ada"
// Declare a constant `lastName` (a `String?`), set to `"Lovelace"`
let lastName: String? = "Lovelace"
// If `firstName, let last = lastName` has a value, bind it to `first`
if let first = firstName, let last = lastName {
// Print "Full name: \(first) \(last)" to the console
print("Full name: \(first) \(last)")
}
Login to try C/C++/Java/PHP code in the editor
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the
view already swaps in the hi_ translation fields (or blanks these
out if untranslated), so this renders correctly for both languages
without a lang_code check here. #}
आम गलतियां
if let value = valueउपयोग करना और भूल जाना कि boundvalueसिर्फ उसifblock के scope के अंदर usable है।- कई अलग
if letstatements nest करना जब इन्हें एक singleif let a = a, let b = bstatement में combine किया जा सकता था। - Optional के नाम को shadow करना modern Swift में fine और idiomatic है, लेकिन यह भूल जाना कि नई binding original optional से बिल्कुल अलग constant है।
चैप्टर सारांश
if let name = optionalValueसुरक्षित रूप से unwrap और bind करता है सिर्फ अगर यह मौजूद हो।- Bound constant सिर्फ
ifblock के scope के अंदर available है। - कई optionals को एक
if letstatement में commas से अलग unwrap किया जा सकता है। - Optional binding crashes से बचाता है क्योंकि block बस नहीं चलता अगर value
nilहो।
🔒
Chapter Quiz — Complete all 8 topics to unlock
0/8 topics done
Complete these topics first: