Use the if let
or guard
constructs:
func fullName() -> String {
if let middleName = middleName {
return "\(firstName) \(middleName) \(lastName)"
} else {
return "\(firstName) \(lastName)"
}
}
func fullName() -> String {
guard let middleName = middleName else {
return "\(firstName) \(lastName)"
}
return "\(firstName) \(middleName) \(lastName)"
}
I’ve put the guard
statement in for completeness but as others have commented this is more commonly used in an error/failure case.
I would also advise against using string interpolation for Strings. They are already strings, there is no need to use the description
of each name in a new string.
Consider return firstName + " " + lastName
. See Difference between String interpolation and String initializer in Swift for cases when string interpolation could return an unexpected result.