Swift: Kapselung und Zugriffskontrolle

Swift unterscheidet folgende Sichtbarkeiten:

Für Eigenschaften besteht die Möglichkeit, lediglich die Sichtbarkeit des Setters einzuschränken, d.h. eine Eigenschaft zu deklarieren, die nur gelesen, aber nicht verändert werden kann, zu deklarieren:

class Counter {

    private(set) var value = 0

}