Providing a default value for an Optional in Swift? -


the idiom dealing optionals in swift seems excessively verbose, if want provide default value in case it's nil:

if let value = optionalvalue {     // 'value' } else {     // same thing default value } 

which involves needlessly duplicating code, or

var unwrappedvalue if let value = optionalvalue {     unwrappedvalue = value } else {     unwrappedvalue = defaultvalue } 

which requires unwrappedvalue not constant.

scala's option monad (which same idea swift's optional) has method getorelse purpose:

val myvalue = optionalvalue.getorelse(defaultvalue) 

am missing something? swift have compact way of doing already? or, failing that, possible define getorelse in extension optional?

update

apple has added coalescing operator:

var unwrappedvalue = optionalvalue ?? defaultvalue 

the ternary operator friend in case

var unwrappedvalue = optionalvalue ? optionalvalue! : defaultvalue 

you provide own extension optional enum:

extension optional {     func or(defaultvalue: t) -> t {         switch(self) {             case .none:                 return defaultvalue             case .some(let value):                 return value         }     } } 

then can do:

optionalvalue.or(defaultvalue) 

however, recommend sticking ternary operator other developers understand more without having investigate or method

note: started module add common helpers or on optional swift.


Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -