gpt4 book ai didi

swift - 切换通用类型?

转载 作者:行者123 更新时间:2023-11-30 10:32:36 24 4
gpt4 key购买 nike

是否可以在 Swift 中启用泛型类型?

以下是我的意思的示例:

func doSomething<T>(type: T.Type) {
switch type {
case String.Type:
// Do something
break;
case Int.Type:
// Do something
break;
default:
// Do something
break;
}
}

当尝试使用上面的代码时,我收到以下错误:

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'

有没有办法切换类型或实现类似的效果? (使用泛型调用方法并根据泛型的类型执行不同的操作)

最佳答案

您需要 is 模式:

func doSomething<T>(type: T.Type) {
switch type {
case is String.Type:
print("It's a String")
case is Int.Type:
print("It's an Int")
default:
print("Wot?")
}
}

请注意,通常不需要 break 语句,没有Swift 情况下的“默认失败”。

关于swift - 切换通用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58814107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com