gpt4 book ai didi

generics - 在Swift中,您可以将泛型限制为两种类型吗?字符串和整数

转载 作者:行者123 更新时间:2023-12-04 11:02:04 25 4
gpt4 key购买 nike

在Swift3中,您可以执行此操作吗?

 func example<T>()->(T) where T can only be String or Int

或者,您仅需要两个扩展名吗?

例如,该函数计算数学函数。

输入在概念上是“数字”,但可以是法语字符串或整数。因此,输入可以是字符串“cent”或整数100。结果将是平方根,因此字符串是“dix”或整数10。

最佳答案

这不是泛型的工作。使用两种静态类型集没有什么通用的。

这是使用枚举的理想情况:

enum SomeEnum { //TODO: name me
case string(String)
case int(Int)
}

func foo(input: SomeEnum) -> SomeEnum {
switch input {
case .string(let s):
print("This is a String: \(s)")
return(.string("abc"))
case .int(let i):
print("This is an Int: \(i)")
return(.int(123))
}
}

print(foo(input: SomeEnum.string("qwerty")))
print(foo(input: SomeEnum.int(5)))

You can try it here

关于generics - 在Swift中,您可以将泛型限制为两种类型吗?字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41063722/

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