---
title: Không khai báo biến không dùng
impact: LOW
impactDescription: Biến không dùng làm tốn bộ nhớ, gây nhầm lẫn khi đọc code và có thể che giấu lỗi logic.
tags: swift, ios, unused-variables, warnings, code-quality
---

## Không khai báo biến không dùng

Hãy xóa tất cả biến được khai báo nhưng chưa bao giờ được dùng đến. Nếu cần bỏ qua giá trị trả về, dùng `_` (wildcard).

**Incorrect (biến không dùng):**

```swift
func processPayment(_ payment: Payment) {
    let transactionId = UUID().uuidString  // Không bao giờ dùng transactionId

    let result = paymentGateway.charge(payment)  // result không được kiểm tra

    let formatter = NumberFormatter()  // formatter khai báo nhưng không dùng
    let amount = payment.amount
    print("Processing \(amount)")
}
```

**Correct (dùng _ cho giá trị bỏ qua):**

```swift
func processPayment(_ payment: Payment) {
    let result = paymentGateway.charge(payment)
    guard result.isSuccess else {
        logger.error("Payment failed: \(result.errorMessage ?? "unknown")")
        return
    }

    let amount = payment.amount
    let formattedAmount = NumberFormatter.currency.string(from: NSNumber(value: amount)) ?? "\(amount)"
    logger.info("Processed payment: \(formattedAmount)")
}

// Khi cần bỏ qua return value một cách có chủ ý:
_ = someOptionalFunction()
```

**Tools:** Xcode Warnings (`unused variable`), SwiftLint (`unused_closure_parameter`), SwiftFormat (`unusedArguments`)

