---
title: Không dùng optional cho Boolean
impact: HIGH
impactDescription: Tránh ambiguity logic (3 trạng thái: true, false, nil) khi chỉ cần 2 trạng thái logic nhị phân.
tags: swift, ios, boolean, optional, logic
---

## Không dùng optional cho Boolean

Không khai báo kiểu `Bool?` nếu có thể tránh được. Việc có 3 trạng thái (`true`, `false`, `nil`) cho một biến logic thường gây khó khăn trong việc kiểm soát luồng điều kiện và dễ dẫn đến lỗi logic. Hãy sử dụng giá trị mặc định rõ ràng.

**Incorrect (dùng optional bool):**

```swift
var isExpanded: Bool?

if isExpanded == true {
    // ...
}
```

**Correct (dùng bool với giá trị mặc định):**

```swift
var isExpanded: Bool = false

if isExpanded {
    // ...
}
```

**Tools:** SwiftLint (discouraged_optional_boolean)
