泛型 – 在Swift中你可以将泛型约束为两种类型吗? String和Int

泛型 – 在Swift中你可以将泛型约束为两种类型吗? String和Int,第1张

概述在 Swift3中,你能做到这一点…… func example<T>()->(T) where T can only be String or Int 或者,你只需要两个扩展名吗? 例如,该函数计算数学函数. 输入在概念上是一个“数字”,但它可以是法语字符串,也可以是整数.因此输入可以是字符串“cent”或Int 100.结果将是平方根,因此字符串“dix”或Int 10. 这不是泛型的工作.使 在 Swift3中,你能做到这一点……
func example<T>()->(T) where T can only be String or Int

或者,你只需要两个扩展名吗?

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

输入在概念上是一个“数字”,但它可以是法语字符串,也可以是整数.因此输入可以是字符串“cent”或Int 100.结果将是平方根,因此字符串“dix”或Int 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

总结

以上是内存溢出为你收集整理的泛型 – 在Swift中你可以将泛型约束为两种类型吗? String和Int全部内容,希望文章能够帮你解决泛型 – 在Swift中你可以将泛型约束为两种类型吗? String和Int所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1041645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存