Ich habe Zweifel über Protokolle in Swift über die Verwendung von var und die Schlüsselwörter {get set}.Warum kann ich kein Protokoll in Swift verwenden?
Von Apple documentation:
Wenn ein Protokoll eine Eigenschaft erfordert gettable und einstellbar sein, dass Eigenschaft Anforderung kann nicht durch eine Konstante gespeichert Eigenschaft oder eine schreibgeschützte berechnete Eigenschaft erfüllt werden. Wenn das Protokoll nur eine Eigenschaft benötigt, um gettable zu sein, kann die Anforderung von jeder Art der Eigenschaft erfüllt werden, und es ist gültig für die Eigenschaft auch einstellbar, wenn dies für Ihren eigenen Code nützlich ist.
Eigenschaftenanforderungen werden immer als Variableneigenschaften mit dem Schlüsselwort var, , deklariert. Getable und setzbare Eigenschaften sind angezeigt durch Schreiben {Get Set} nach ihrer Typdeklaration, und gettable Eigenschaften werden durch Schreiben {get} angezeigt.
Ich kann nicht verstehen, warum ich nicht lassen kann. A var in einem Protokoll mit nur Get ist nicht nur ein lassen?
Etwas wie folgt aus: Ich vermisse
protocol someProtocol
{
let someProperty: String
}
etwas:
protocol someProtocol
{
var someProperty: String { get }
}
es nicht nur sein würde?
Eine getable-Eigenschaft kann noch Werte ändern - der Protokollimplementierer kann immer unterschiedliche Werte zurückgeben, der Protokollaufrufer kann sie einfach nicht setzen. Auf der anderen Seite, definieren Sie eine Konstante. Es kann nur einmal eingestellt werden und kann keinen anderen Wert haben. – pvg
@pvg, warum hast du das nicht als Antwort gepostet? – courteouselk
yup, das ist die richtige Antwort hier. – sunshinejr