struct
s может наследовать (только если это правильное слово) от протоколов.Невозможно наследовать от базы 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