Swift: adding optionals Ints -
i declare following:
var x:int? var y:int? and i'd third variable z contains sum of x , y. presumably, x & y optionals, z must optional:
var z:int? = x + y but gives complier error "value of optional type 'int?' not unwrapped; did mean use '!' or '?'"
if unwrap x & y:
var z:int? = x! + y! i run-time error x & y nil, can't unwrapped.
i can achieve desired result follows:
var z:int? if let x1 = x { if let y1 = y { z = x1+y1 } } but seems bit verbose adding 2 integers! there better way of achieving this?
here take, think it's cleaner:
let none:int? = nil let some:int? = 2 func + (left: int?, right:int?) -> int? { return left != nil ? right != nil ? left! + right! : left : right } println(none + none) println(none + some) println(some + none) println(some + some) println(2 + 2) with results of:
nil optional(2) optional(2) optional(4) 4
Comments
Post a Comment