Trong Swift, làm cách nào tôi có thể viết một trường hợp trong một câu lệnh switch kiểm tra giá trị được chuyển sang nội dung của một tùy chọn , bỏ qua trường hợp nếu tùy chọn chứa nil
?
Đây là cách tôi tưởng tượng nó có thể trông như thế nào:
let someValue = 5
let someOptional: Int? = nil
switch someValue {
case someOptional:
// someOptional is non-nil, and someValue equals the unwrapped contents of someOptional
default:
// either, someOptional is nil, or someOptional is non-nil but someValue does not equal the unwrapped contents of someOptional
}
Nếu tôi chỉ viết nó chính xác như thế này, trình biên dịch sẽ phàn nàn rằng someOptional
không được mở gói, nhưng nếu tôi mở nó một cách rõ ràng bằng cách thêm !
vào cuối, tất nhiên tôi sẽ gặp lỗi thời gian chạy bất kỳ lúc nào someOptional
có nil
. Việc thêm ?
thay vì !
sẽ có ý nghĩa đối với tôi (theo tinh thần của chuỗi tùy chọn, tôi cho là vậy), nhưng không làm cho lỗi trình biên dịch biến mất (nghĩa là không thực sự mở gói tùy chọn).