Die Implementierung der Eigenschaft mit var
und let
verhält sich anders, wenn die implementierende Struktur einer Variablen zugewiesen ist, die als typisiert ist.Swift-Protokollerweiterung `var {get}` override Implementierung `let`
protocol Req {
var path: String? { get }
}
extension Req {
var path: String? { return "Req" }
}
struct LetReq: Req {
let path = "LetReq"
}
struct VarReq: Req {
var path: String? { return "VarReq" }
}
var req: Req!
req = VarReq()
req.path // prints "VarReq"
req = LetReq()
req.path // prints "Req" not "LetReq" which seems very awkward.
Ist dieses Verhalten von Swift ausgelegt?
Oder http://bugs.swift.org – jtbandes