Как наследовать структуру в swift? - PullRequest
0 голосов
/ 17 мая 2019

Есть ли наследовать структуру в Swift?

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

1 Ответ

0 голосов
/ 17 мая 2019

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...