How do you use the Optional variable in a ternary conditional operator?

This even works well if the value you want is a property or result of a function call on an optional (in Swift 3.0):

return peripheral?.connected ?? false

Nil Coalescing Operator can be used as well. The code below uses the ternary conditional operator and forced unwrapping (a!) to access the value wrapped inside a when a is not nil, and to return b otherwise

Normal Ternary Operator :

output = a != nil ? a! : b Apple Developer Link : Please refer to Demo Link

In Swift 1.2 & 2, above line of code is replaced by a shorter format:

output = a ?? b

Demo Link : The nil coalescing operator (a ?? b) unwraps an optional a if it contains a value, or returns a default value b if a is nil.


Ternary operators operate on three targets. Like C, Swift has only one ternary operator, the ternary conditional operator (a ? b : c).

Example usage on tableView -

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
     return section == 2 ?  4 :  1
}

indicates if section equal to 2 then it return 4 otherwise 1 on false.


You can not assign string value to bool but You can check it str1 is nil or not like this way :

myBool = str1 != nil ? true : false
print(myBool)

It will print false because str1 is empty.