gpt4 book ai didi

初始化函数中的 Swift 嵌套类型

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

我有一个描述某些结构的嵌套类型对象:

class Car {
class Electro {
class 2WheelDrive {
}
class 4WheelDrive {
}
}
}

我想将该对象用作另一个对象的初始化函数中的参数,其签名如下所示:

init(car: Car)

但是,当我尝试使用 Car.Electro.4WheelDrive 参数调用此 init 函数时,出现错误:

"cannot convert value of type 'Car.Electro.4WheelDrive' to expected argument type 'Car'".

除了 init(car: Any) 之外,我应该使用哪个 init 函数签名才能使用像 Car.Electro.4WheelDrive 这样的参数?

最佳答案

您的代码创建了四个类:

  • 汽车
  • 汽车电子
  • Car.Electro.2WheelDrive(我不认为这是合法的;它必须以字母开头)
  • Car.Electro.4WheelDrive

这些是不相关的类;它们唯一的共同点是一些命名空间。 Car.Electro 不是 Car 的子类。如果你想要它,你需要声明它。

您可能根本不想让它们嵌套。您可能打算让它们成为子类:

class Car {}
class ElectroCar: Car {}
class TwoWheelDriveElectroCar: ElectroCar {}
class FourWheelDriveElectroCar: ElectroCar {}

如果你愿意,你当然仍然可以嵌套它们:

class Car {
class Electro: Car {
class TwoWheelDrive: Electro {
}
class FourWheelDrive: Electro {
}
}
}

这只是改变了他们的名字,而不是他们的关系。

关于初始化函数中的 Swift 嵌套类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53011290/

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