स्विफ्ट में वैकल्पिक से निपटने के लिए मुहावरा अत्यधिक क्रियात्मक लगता है, यदि आप जो करना चाहते हैं वह उस मामले में एक डिफ़ॉल्ट मूल्य प्रदान करता है जहां यह शून्य है:
if let value = optionalValue {
// do something with 'value'
} else {
// do the same thing with your default value
}
जिसमें अनावश्यक रूप से डुप्लिकेट कोड शामिल है, या
var unwrappedValue
if let value = optionalValue {
unwrappedValue = value
} else {
unwrappedValue = defaultValue
}
जिसकी आवश्यकता unwrappedValue
निरंतर नहीं है।
स्काला के विकल्प मोनाड (जो मूल रूप से स्विफ्ट के वैकल्पिक के समान विचार है) में getOrElse
इस उद्देश्य के लिए विधि है :
val myValue = optionalValue.getOrElse(defaultValue)
क्या मैं कुछ भूल रहा हूँ? क्या स्विफ्ट के पास पहले से ही ऐसा करने का एक कॉम्पैक्ट तरीका है? या, असफल होना, क्या getOrElse
वैकल्पिक के लिए विस्तार में परिभाषित करना संभव है ?