Swift 中有继承结构体的吗?
struct Resolution {
var width = 0
var height = 0
}
struct Display : Resolution {}
Run Code Online (Sandbox Code Playgroud)
structs 只能从协议继承(如果这个词正确的话)。不能从基础继承,struct所以你不能这样做
struct Resolution {
var width = 0
var height = 0
}
struct MyStruct: Resolution { ... } // ERROR!
Run Code Online (Sandbox Code Playgroud)
所以你有两个选择。第一种是用aclass代替。第二是重构代码以使用协议。
所以,如果你有一些常用的方法,你可以这样做:
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
Run Code Online (Sandbox Code Playgroud)