Optional là một khái niệm mới trong ngôn ngữ lập trình Swift. Với việc sử dụng optional, Swift được Apple giới thiệu là ngôn ngữ “an toàn” hơn so với ngôn ngữ Objective-C trước đó.
Optional có 2 loại: ? và ! , ví dụ:
var str: String = “Hello bacon” // OK
str = nil // biên dịch lỗi
var str: String? = “Hello bacon” // OK
str = nil // OK
với ?, giá trị của str có thể là nil hoặc là 1 String.
var i: Int? = 0;
i = i + 1;
//compiler error
var i: Int? = 0;
i = i! + 1;
// ok
với !, để chắc chắn rằng i luôn luôn có giá trị.