สำนวนสำหรับการจัดการกับตัวเลือกใน Swift ดูเหมือนจะละเอียดเกินไปหากสิ่งที่คุณต้องการทำคือให้ค่าเริ่มต้นในกรณีที่ไม่มีค่า:
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
ไม่คงที่
ตัวเลือกของ Scala monad (ซึ่งโดยพื้นฐานแล้วเป็นความคิดเดียวกันกับทางเลือกของ Swift) มีวิธีการgetOrElse
สำหรับจุดประสงค์นี้:
val myValue = optionalValue.getOrElse(defaultValue)
ฉันพลาดอะไรไปรึเปล่า? Swift มีวิธีการที่กะทัดรัดในการทำเช่นนั้นหรือไม่? หรือล้มเหลวนั้นเป็นไปได้ที่จะกำหนดgetOrElse
ในส่วนขยายสำหรับตัวเลือกหรือไม่