Ich Swift lernen, und ich kann nicht verstehen, warum dieser Code eine redundante Ausgabe ausgedruckt:Getter genannt unerwartet ein zweites Mal für inout Parameter
class A {}
var x: A {
set { print("set") }
get {
print("get")
return A()
}
}
func f(inout y: A) { print("f") }
f(&x)
Das Ergebnis ist:
get
f
set
get
Warum die zuletzt hier? Wenn ich einen anderen inout Parameter in f hinzufügen:
class A {}
var x: A {
set { print("set") }
get {
print("get")
return A()
}
}
func f(inout y: A, inout z: Int) { print("f") }
var z = 10
f(&x, z:&z)
Das neue Ergebnis ist:
get
f
set
Können Sie mir klar?
Ich habe keine Inout-Parameter hinzugefügt. Das Ergebnis ist das gleiche wie zuerst. Wenn ich einen Inout-Parameter hinzufüge. Das Ergebnis wird anders sein. Wie auch immer, danke für deinen Punkt. Ich denke du hast Recht. Ich werde das spät verifizieren. – aviit
@aviit Was meinst du? – luk2302
Ich meine ich habe gerade erst mit Swift in Playground angefangen :). Ich habe noch nicht gelernt, in anderen zu programmieren. Vielen Dank! – aviit