gpt4 book ai didi

swift - 在 Swift 中使用 AnyObject 接受任何类型的元素数组是否好

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

我想创建一个 uniq 方法,它接受一个数组,但元素类型可以不同,例如 [1, "Hello", true, 234.3] 或者所有元素类型可以相同 [1, 2, 3, 4]

func uniq(array: AnyObject[]) -> AnyObject[] {
...
}

使用 AnyObject 并返回 AnyObject 数组是最佳实践吗?

我还可以使用 == 等号比较两个 AnyObjects 并且无论它们是同一类型它都会比较它们吗?

最佳答案

您可以使用泛型来创建可以接受任何类型的类型化函数,而无需向上转换为 AnyObject,即:

func uniq<T>(array: T[]) -> T[] {
...
}

为了能够比较项目,您可以添加通用约束以确保调用此方法的所有类型都符合 Equatable 协议(protocol),这将允许您使用 = = 针对项目,即:

func uniq<T : Equatable>(array: T[]) -> T[] {
...
}

关于swift - 在 Swift 中使用 AnyObject 接受任何类型的元素数组是否好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24072644/

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