Browse Questions
- An Optional is a type that can hold either a value or nil.
- They test different layers of the app and run at different speeds.
- These are three distinct levels of organisation in an Xcode workspace.
- All three are test doubles — fake objects used in place of real dependencies — but with different roles.
Answer:
An Optional is a type that can hold either a value or nil. It's Swift's way of expressing the absence of a value safely, avoiding null pointer crashes common in Objective-C.
Code Example:
var name: String? = "Alice" // Optional String
var age: Int? = nil // no value
// Unwrapping safely
if let name = name {
print("Hello, \(name)")
}
// Nil coalescing — provide a default
let displayName = name ?? "Guest"
// Optional chaining — safely access properties
let count = name?.count // returns Int? not Int
Key Points:
String?is shorthand forOptional<String>- Never force unwrap (
!) unless you are 100% certain it has a value - Prefer
if let,guard let, or??for safe unwrapping