Trong Swift2, bạn có thể có một cái gì đó tương tự như đoạn mã sau:Swift 3, câu lệnh switch, trường hợp hasPrefix
switch productIdentifier {
case hasSuffix("q"):
return "Quarterly".localized
case hasSuffix("m"):
return "Monthly".localized
default:
return "Yearly".localized
}
và nó sẽ làm việc. Trong Swift 3, cách duy nhất tôi có thể làm các công việc trên là:
switch productIdentifier {
case let x where x.hasSuffix("q"):
return "Quarterly".localized
case let x where x.hasSuffix("m"):
return "Monthly".localized
default:
return "Yearly".localized
}
mà dường như mất sự trong sáng của phiên bản Swift2 - và nó làm cho tôi nghĩ rằng tôi thiếu cái gì đó. Ở trên là một phiên bản đơn giản của khóa học. Tôi tò mò nếu có ai có cách xử lý tốt hơn?
tôi không thể làm cho mã Swift 2 của bạn hoạt động trên Swift 2.2.1/Xcode 7.3.1. Bạn có thể vui lòng cho chúng tôi thấy một mã thực sự hoạt động không? – OOPer
Đó là mã làm việc - Tôi lấy trực tiếp từ codebase của mình. Tuy nhiên một số thứ như phần mở rộng trên Strings cho bản địa hoá sẽ không làm việc cho bạn bởi vì bạn không có phần mở rộng đó. – AlexK
Sẽ tốt hơn nếu bạn có thể hiển thị các phần bị thiếu. Bạn thật may mắn khi bạn có thể nhận được câu trả lời đúng trong một khoảng thời gian ngắn, việc thiếu thông tin đó sẽ dẫn đến những câu trả lời có chất lượng thấp. – OOPer