Mở gói bằng if let
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 12 trên 86.
Để truy cập an toàn giá trị bên trong một giá trị tùy chọn, ta dùng if let: một kỹ thuật gọi là optional binding. Cách này kiểm tra xem giá trị tùy chọn có chứa giá trị hay không. Nếu có, nó mở gói giá trị đó vào một hằng số tạm thời.
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// Welcome, Swift_DevỞ đây, if let kiểm tra xem username có giá trị hay không. Vì biến này có giá trị, giá trị đó được mở gói vào name, biến này chỉ tồn tại bên trong khối lệnh if. Nếu username là nil, khối lệnh else sẽ chạy thay thế.
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// Chưa cung cấp tuổiVì age là nil, điều kiện không thỏa mãn và khối lệnh else được thực thi. Cách này ngăn chương trình bị lỗi nếu ta cố dùng trực tiếp một giá trị không tồn tại.
Thử thách
DễBạn được cung cấp biến sau:
var nickname: String? = "CoddyLearner"Dùng if let để mở gói an toàn nickname. Nếu biến này có giá trị, hãy in ra Hello, [value]!, trong đó [value] là biệt danh đã mở gói. Nếu biến này là nil, hãy in ra No nickname set.
Tự làm thử
var nickname: String? = "CoddyLearner"
// TODO: Viết code bên dưới
// Dùng if let để lấy giá trị của nickname một cách an toàn
// Nếu nickname có giá trị, in ra "Hello, [value]!"
// Nếu nickname là nil, in ra "No nickname set"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
4Các toán tử, phần 1
Toán tử số họcToán tử moduloPhép gán kết hợpÔn tập: phép tính đơn giảnToán tử so sánh7Nhập xuất cơ bản
Hàm in raNội suy chuỗiĐầu vào từ dòngChuyển đổi kiểu dữ liệuÔn tập đến 120Ôn tập đúng hay sai3Giá trị tùy chọn
Giá trị tùy chọn là gìMở gói bằng if letGuard letToán tử gộp nilÔn tập: mở gói an toàn6Ra quyết định
Câu lệnh ifIf và elseÔn tập: máy tính đơn giảnCâu lệnh switchSwitch với khoảng giá trị9Vòng lặp
Vòng lặp for-inVòng lặp whileVòng lặp repeat-whileBreakContinueÔn tập: giai thừaDải giá trị trong vòng lặpVòng lặp lồng nhauÔn tập: đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngTruy cập phần tửChỉnh sửa mảngPhương thức của mảngÔn tập: Danh sách sản phẩmÔn tập: Mảng đảo ngượcTuple15Trình theo dõi chi tiêu hằng ngày
Tổng quan về dự ánThoát chương trìnhTự luyện tập: Playground Swift