gpt4 book ai didi

arrays - 我可以创建一个从 Array 派生的类吗?

转载 作者:行者123 更新时间:2023-11-28 09:36:58 25 4
gpt4 key购买 nike

我正在摆弄一个椰子足类动物,我正在尝试创建一个类,该类是 Array 类型的子类。

我希望它从 Array 子类化的原因是因为 ArrayNSArray 在 Swift 中的处理方式不同。

我可以这样创建一个类:

class Test : NSArray {}

但如果我尝试这样做:

class Test : Array {}

或者这个:

class Test : [AnyObject] {}

我得到一个错误。

我想要这个的主要原因是我可以使用这样的函数:

let i = myArray.randomObject()

与此相比:

let i = Test.randomObject(myArray)

关于我可以做什么的任何想法(而不是也许)?

最佳答案

您可以通过扩展向数组添加方法。像这样的东西:

extension Array
{
func randomObject() -> Element { return self[ Int( arc4random_uniform( UInt32( self.count ) ) ) ] }
}

现在您可以执行 myArray.randomObject(),其中 myArray 的类型为 Array


编辑:另外,@Addison 正确地指出了结构类型不能在 Swift 中被子类化。

关于arrays - 我可以创建一个从 Array 派生的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36023269/

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