swiftui-example icon indicating copy to clipboard operation
swiftui-example copied to clipboard

结构 struct 只能从协议继承

Open jaywcjlove opened this issue 4 years ago • 0 comments

结构只能从协议继承(如果正确的话)。 不能从基本结构继承,所以您不能做

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

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

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

因此,有一些常用方法,则可以执行以下操作:

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

jaywcjlove avatar Apr 26 '21 16:04 jaywcjlove