gpt4 book ai didi

swift - 多类型约束

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:55 27 4
gpt4 key购买 nike

有没有一种方法可以将参数类型约束为多个约束?具体来说,对象可以是 Decodable 协议(protocol)或具有通用 Decodable 的数组。

像这样:

func myFunc(obj:Decodable, Array<Decodable>)

我试过像这样处理它,使用具有多个约束的泛型,但它要求两者都是协议(protocol),而 Array 不是。此外,这可能是一个 AND 约束,而不是 MartinR 指出的 OR:

func myFunc<T where T:Decodable, T:Array<Decodable>>(obj:T)

失败是因为数组不是协议(protocol)。有没有办法将参数限制为两种类型之一,其中一种不是协议(protocol)?

我试图避免在运行时抛出错误的检查,我可以这样做,但对我来说似乎是不好的做法。

最佳答案

您可以在调用方法时使用 if 语句。然后有两个不同版本的方法(一个用于每种类型的约束)并根据您需要使用的约束调用适当的方法。

关于swift - 多类型约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39754705/

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