如何快速继承该结构?

时间:2019-05-17 09:13:53

标签: swift

Is there any to inherit struct.

struct Resolution {
    var width = 0
    var height = 0
}
  

Blockquote

我想继承上述结构的属性

1 个答案:

答案 0 :(得分:0)

struct只能从协议继承(如果正确的话)。不能从基础struct继承,因此您不能这样做

struct Resolution {
    var width = 0
    var height = 0
}

struct MyStruct: Resolution { ... } // ERROR!

因此,您有两个选择。第一种是改为使用class。第二个是重构代码以使用协议。

因此,如果您有一些常用方法,可以这样做:


protocol PixelContainer
{
   var width: Int { get }
   var height: Int { get }
}

extension PixelContainer
{
    var count: Int { return width * height }
}

struct Resolution: PixelContainer
{
    var width = 10
    var height = 20
}

let numPixels = Resolution().count // Legal