Was ist der Typ der SCNVector3-Komponenten? CGFloat oder Float?

Die Apple-Dokumentation enthält die Deklaration von SCNVector3:

typedef struct SCNVector3 {CGFloat x, y, z; } SCNVector3;

Oder beim Versuch, eine Überladungsfunktion zu schreiben:

func * (left: SCNVector3, right: CGFloat) -> SCNVector3 {
    return SCNVector3Make(left.x * right, left.y * right, left.z * right)
}

Ich bekomme die "kann '@ nicht aufruf 'mit einer Argumentliste vom Typ "error". Sollen left.x, left.y und left.z nicht CGfloat sein?

Wie und wann wird entschieden, ob CGFloat ein Double oder ein Float sein wird?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage