首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写接受由RawRepresentable生成的任何值的泛型函数的问题

编写接受由RawRepresentable生成的任何值的泛型函数的问题
EN

Stack Overflow用户
提问于 2019-10-04 13:17:18
回答 1查看 38关注 0票数 0

我正在尝试编写一个函数,该函数接受由RawRepresentable生成的任何CustomStringConvertible值。我试着写了这个:

代码语言:javascript
复制
enum MyEnum: String {
    case a = "someString"
}

func myFunction<R: RawRepresentable>(val: R) where R.RawValue == CustomStringConvertible {
    print(val.rawValue.description)
}

myFunction(val: MyEnum.a)

但是,我得到了以下错误:

代码语言:javascript
复制
Global function 'myFunction(val:)' requires the types 'String' and 'CustomStringConvertible' be equivalent

这很奇怪,因为String确实符合CustomStringConvertible

但是,将RawValue与just String相结合是可行的,但是,我想将其与其他CustomStringConvertible一起使用。

为什么这不编译,我有办法做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-04 13:24:27

你应该说它符合协议

代码语言:javascript
复制
where R.RawValue: CustomStringConvertible 

现在它也适用于其他类型。

代码语言:javascript
复制
enum MyEnum2: Int {
    case one = 1
}

myFunction(val: MyEnum2.one)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58237226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档