11
Có thể bật loại chung trong Swift không?Chuyển sang loại chung?
Dưới đây là một ví dụ về những gì tôi có nghĩa là:
func doSomething<T>(type: T.Type) {
switch type {
case String.Type:
// Do something
break;
case Int.Type:
// Do something
break;
default:
// Do something
break;
}
}
Khi cố gắng sử dụng các mã trên, tôi nhận được các lỗi sau đây:
Binary operator '~=' cannot be applied to operands of type 'String.Type.Type' and 'T.Type'
Binary operator '~=' cannot be applied to operands of type 'Int.Type.Type' and 'T.Type'
Có cách nào để chuyển đổi trên một loại, hoặc để đạt được một cái gì đó tương tự? (Gọi một phương thức với một generic và thực hiện hành động khác nhau tùy thuộc vào từng loại của generic)
Tôi nhận được một cảnh báo lạ khi sử dụng 'loại chuyển đổi', tuy nhiên' chuyển T.self' hoạt động hoàn hảo. Cảm ơn! –
@jackwilsdon: Lạ, tôi đã thử nghiệm nó trong Xcode 7.0.1 và không có cảnh báo. –
Tôi đang sử dụng sân chơi, tuy nhiên sau khi tải lại sân chơi, cảnh báo đã biến mất. Cảm ơn! –