guard trong Swift
Bài viết giải thích cách sử dụng câu lệnh guard trong Swift, một cách tiếp cận khác với if let để xử lý Optional Binding. Tác giả trình bày cú pháp, ví dụ thực tế và lợi ích của guard trong việc làm code sạch hơn và dễ đọc hơn khi xử lý các điều kiện đầu vào.

Guard trong Swift là gì?
Ở bài trước, ta đã tìm hiểu về kiểu Optional trong Swift. Ngoài sử dụng if let cho Optional Binding, ta cũng có thể dùng guard.
Syntax đầy đủ khi dùng guard:
guard else { return }```
Câu 'thần chú' của mình để cho dễ hiểu là:
đảm bảo rằng nếu không thì ```{ return }```
## Ví dụ nếu không dùng guard
Mình có 2 UITextField như sau:
@IBOutlet weak var usernameTF: UITextField! @IBOutlet weak var passwordTF: UITextField!
Khi lấy giá trị của UITextfield bằng cách usernameTF.text thì sẽ trả về kiểu Optional:

Chúng ta cần kiểu tra xem user có nhập đúng kiểu dữ liệu của username và password không, nếu dùng i **f let** thì phải làm như sau:
https://gist.github.com/KhoaVanNguyen/be34e0db7d7bb21a892ddefab2d46032
Bạn sẽ thấy vấn đề là các câu if bị lồng vào nhau rất khó nhìn. Nếu cần phải check khoảng 4 cái control từ user thì càng khó nhìn hơn nữa. Việc validation sẽ dễ dàng hơn với guard như sau.
## Ví dụ dùng guard
https://gist.github.com/KhoaVanNguyen/4f3ae1ae7003df85c26c1fdb3cdb71e8
Bạn sẽ thấy code nhìn dễ nhìn hơn nhiều và đúng với [code style early return](https://softwareengineering.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement) hơn.
Ngoài ra, bạn có thể tách riêng phần validation code để tiện cho việc unit testing và xử lý logic hơn. Ví dụ bạn cần check username xem có trùng hay không và username phải có trên 6 ký tự và username phải có ít nhất một số.
https://gist.github.com/KhoaVanNguyen/b5a0b12e6bb71f90fd96c869865eb23e
Dưới đây là một ví dụ thực tế mình dùng guard để validate các điều kiện, nếu mà dùng if sẽ cực kỳ rối mắt.
https://gist.github.com/KhoaVanNguyen/702905c91af40ee4ecd0ceda426f0fbb
## Kết
Mặc dù ý tưởng dùng guard không có gì mới, nhưng việc thêm từ khóa này trong Swift cũng một phần làm ngôn ngữ này trở nên [gần gũi với người lập trình hơn](https://niviki.com/tuong-lai-nao-cho-swift/). Khi dùng guard bạn hãy nhớ câu: " **Đảm bảo rằng ..... nếu không thì .....** ". Đây là một trong những lý do mình thích Swift vì viết code như viết tiếng Anh.
Bài viết là tài liệu đọc thêm cho [khóa học iOS với Swift](https://niviki.com/chuan-bi-khoa-hoc-moi-ios-voi-swift/), bạn có thể đọc thêm nếu quan tâm.
Related Posts
Discover more content you might enjoy

Vibe Coding - Code lại blog từ đầu và rebrand thành khoa.blog
Chia sẻ chi tiết quá trình build lại blog từ đầu với vibe coding, từ việc chuyển đổi dữ liệu đến việc triển khai các tính năng mới, giúp người đọc hiểu rõ hơn về quá trình phát triển blog cá nhân.

Game Theory trong thời đại AI: Khi máy móc tham gia vào "trò chơi"
Bài viết phân tích sự giao thoa giữa lý thuyết trò chơi (Game Theory) và trí tuệ nhân tạo, giải thích cách AI đang thay đổi các nguyên lý cân bằng Nash và chiến lược tối ưu. Tác giả đưa ra các ví dụ thực tế về ứng dụng trong kinh doanh, giao thông và an ninh mạng.

Bài này không phải AI viết
Suy ngẫm chân thành về giá trị của việc viết thủ công trong kỷ nguyên AI. Dù AI có thể tạo nội dung hiệu quả, bài viết này là lời khẳng định về sự kết nối cá nhân và giá trị độc đáo mà con người mang lại cho văn bản của mình.

Vibe Coding và các nhược điểm của nó
Phân tích chi tiết các nhược điểm và rủi ro của phương pháp Vibe Coding - cách tiếp cận để AI viết code mà không cần sự giám sát của con người, giúp người đọc hiểu rõ hơn về những thách thức trong việc áp dụng công nghệ AI vào phát triển phần mềm.
Phương pháp học từ vựng "siêu tốc"
Phương pháp học từ vựng tiếng Anh hiệu quả bằng cách kết hợp từ ngữ, hình ảnh, âm thanh và hành động để kích hoạt cả hai bán cầu não, giúp nhớ nhanh và lâu.

Có nên nghỉ việc để tham gia một startup?
Bài viết chia sẻ trải nghiệm cá nhân và bài học từ việc nghỉ việc tại công ty lớn để tham gia startup. Tác giả phân tích tầm quan trọng của việc có kế hoạch dài hạn cho cuộc đời, đánh giá cẩn thận trước khi đưa ra quyết định nghỉ việc, và lợi ích của việc khởi nghiệp trong lĩnh vực mình am hiểu. Những chia sẻ thực tế giúp người đọc cân nhắc kỹ lưỡng trước khi rời bỏ công việc ổn định để theo đuổi cơ hội tại các startup.