gpt4 book ai didi

swift - 编写通用函数时出现问题,该函数接受 CustomStringConvertible 可 RawRepresentable 的任何值

转载 作者:行者123 更新时间:2023-11-28 13:26:45 28 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数接受任何可由 CustomStringConvertible 表示的 RawRepresentable 值。我试过这样写:

enum MyEnum: String {
case a = "someString"
}

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

myFunction(val: MyEnum.a)

但是我得到以下错误:

Global function 'myFunction(val:)' requires the types 'String' and 'CustomStringConvertible' be equivalent

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

使 RawValue 仅适用于 String 是可行的,但是,我想让它与其他 CustomStringConvertible 一起使用。

为什么这不能编译,有什么方法可以实现吗?

最佳答案

你应该说它符合协议(protocol)

where R.RawValue: CustomStringConvertible 

现在它也适用于其他类型

enum MyEnum2: Int {
case one = 1
}

myFunction(val: MyEnum2.one)

关于swift - 编写通用函数时出现问题,该函数接受 CustomStringConvertible 可 RawRepresentable 的任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58237226/

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