---
title: Không dùng optional binding chỉ để gọi hàm hoặc property
impact: CRITICAL
impactDescription: Tránh việc tạo ra các khối lồng nhau (deep nesting) không cần thiết, giúp code phẳng và dễ đọc hơn.
tags: swift, ios, optional, chaining, binding
---

## Không dùng optional binding chỉ để gọi hàm hoặc property

Tránh sử dụng `if let` hoặc `guard let` nếu mục đích duy nhất chỉ là để gọi một phương thức hoặc truy cập một thuộc tính của đối tượng optional. Thay vào đó, hãy sử dụng **Optional Chaining** (`?.`). Điều này giúp mã nguồn ngắn gọn và tránh lồng ghép nhiều cấp bậc.

**Incorrect (dùng binding cho một lần gọi duy nhất):**

```swift
if let navigationController = self.navigationController {
    navigationController.popViewController(animated: true)
}
```

**Correct (dùng optional chaining):**

```swift
self.navigationController?.popViewController(animated: true)
```

**Tools:** SwiftLint (unused_optional_binding)
