Generics
Generic Optionals
Generic helpers can work with optional values without knowing their concrete type ahead of time.
Replace nil with a default
generic_optionals.swift
func valueOrDefault<T>(_ value: T?, fallback: T) -> T {
return value ?? fallback
}
let hasNickname =
let nickname = hasNickname ? "Ada" : nil
let display = valueOrDefault(nickname, fallback: "guest")
let message = "name=\(display)"
print(message)
func valueOrDefault<T>(_ value: T?, fallback: T) -> T {
return value ?? fallback
}
let hasNickname =
let nickname = hasNickname ? "Ada" : nil
let display = valueOrDefault(nickname, fallback: "guest")
let message = "name=\(display)"
print(message)
optional generic
A generic optional helper can express fallback behavior once and keep the returned type precise.