В отличие от дефолтного, структура получает покомпонентный инициализатор, даже если она имеет свойства, не имеющие значений по умолчанию.
Но До Swift 6.4 приватные хранимые свойства со значениями по умолчанию мягко говоря были неудобными, так как вот такая история была бы невалидна:
struct Article {
let title: String
let url: URL
private var readCount: Int = 0
}
// You would expect this to work, but it does not before Swift 6.4:
let article = Article(
title: "Memberwise Initializers in Swift",
url: URL(string: "https://www.avanderlee.com")!
)📖 В этой статье разбирается, что изменилось в Swift 6.4 благодаря SE-0502.
А множество других подводных камней разбиралось в статье из вот этого поста.
😃 iOS Dev