gpt4 book ai didi

ios - 如何创建接受泛型类型作为关联类型的枚举

转载 作者:行者123 更新时间:2023-11-29 01:30:54 24 4
gpt4 key购买 nike

我正在尝试创建一个接受通用类型作为关联值的枚举。
编译器提示:

Reference to generic type 'GenericItem' requires arguments in <...>

该方案非常简单:

struct GenericItem <Item:FormattableAsStringWithPrecision> {
let value: Item
}

enum Enumeration {
case Generic(values: [GenericItem])
}

我不明白如何做到这一点。

最佳答案

您还需要将泛型类型添加到枚举中,可以从初始化程序推断出类型,因此您不需要将其作为泛型类型参数传递。

下面是您可以如何执行此操作的示例。

struct GenericItem<T: CustomDebugStringConvertible> {
let value: T
}

enum Enumeration<T: CustomDebugStringConvertible> {
case Generic(value: [GenericItem<T>])
}

let someValue = Enumeration.Generic(value: [ GenericItem(value: "") ])

编辑:我将FormattableAsStringWithPrecision更改为CustomDebugStringConvertible,因为我认为它是您自己的自定义协议(protocol)之一,可以轻松换出,但相同的逻辑仍然适用对于任何协议(protocol)。

关于ios - 如何创建接受泛型类型作为关联类型的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33476426/

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