Menu
CoddyTech

Giá trị tùy chọn là gì

Thuộc phần Kiến thức nền tảng trong hành trình Swift của Coddy. Bài học 11 trên 86.

Đôi khi, một biến hoàn toàn không có giá trị. Trong Swift, ta dùng kiểu tùy chọn để biểu thị việc không có giá trị. Kiểu tùy chọn cho biết “có một giá trị và giá trị đó bằng x” hoặc “hoàn toàn không có giá trị”.

Để khai báo một kiểu tùy chọn, hãy thêm dấu hỏi ? sau kiểu dữ liệu:

var nickname: String? = "Alex"
var age: Int? = nil

Trong ví dụ trên, nickname giữ giá trị "Alex", còn age giữ nil: cách Swift biểu thị “không có giá trị”. Biến thông thường không thể là nil, nhưng biến optional thì có thể.

Hãy hình dung optional như một chiếc hộp có thể chứa thứ gì đó hoặc để trống. Trước khi dùng thứ bên trong, bạn cần kiểm tra xem có thứ gì ở đó không. Đây là một tính năng an toàn quan trọng trong Swift, giúp ngăn chương trình gặp sự cố khi thiếu giá trị ngoài dự kiến.

var score: Int? = 100
print(score) // Optional(100)

score = nil
print(score) // nil

Lưu ý rằng khi bạn in ra một giá trị tùy chọn có giá trị, nó hiển thị Optional(100) thay vì chỉ 100. Để truy cập giá trị thực bên trong, bạn cần bóc tách giá trị tùy chọn. Mình sẽ hướng dẫn phần này trong các bài học tiếp theo.

challenge icon

Thử thách

Dễ

Viết một hàm createOptional nhận một số và trả về một chuỗi thể hiện cách số đó sẽ hiển thị khi được in ra dưới dạng optional.

Quan trọng: hàm này trả về một String. Bạn đang viết văn bản trông giống như một optional, chứ không trả về một giá trị optional thực sự.

Khi bạn in ra một optional có chứa giá trị, Swift hiển thị giá trị đó theo định dạng Optional(value).

Nhắc lại cú pháp hàm: Trong Swift, hàm trả về một giá trị dùng mũi tên -> để chỉ định kiểu trả về và từ khóa return để trả về kết quả. Ví dụ:

func myFunction(param: Int) -> String {<br>    return "result"<br>}

Bạn có thể tạo chuỗi trả về bằng phép nội suy chuỗi: "Optional(\(value))": phần \(value) chèn số trực tiếp vào chuỗi.

Tham số:

  • value (Int): Số cần bọc theo định dạng optional

Giá trị trả về: Một chuỗi theo định dạng Optional(value), trong đó value là số được cung cấp.

Ví dụ: Nếu đầu vào là 100, hãy trả về "Optional(100)"

Tự làm thử

func createOptional(value: Int) -> String {
    // Trả về một String trông giống giá trị tùy chọn, chứ không phải giá trị tùy chọn thực sự
    // Chèn số vào giữa cặp dấu ngoặc đơn bằng nội suy chuỗi
    return "Optional()"
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Playground Swift