加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:38:05 所属栏目:百科 来源:网络整理
导读:在 Swift3中,你能做到这一点…… func exampleT()-(T) where T can only be String or Int 或者,你只需要两个扩展名吗? 例如,该函数计算数学函数. 输入在概念上是一个“数字”,但它可以是法语字符串,也可以是整数.因此输入可以是字符串“cent”或Int 100.结
在 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读