Für mit komplexen Zahlen arbeiten, das ist, wie ich habe es getan:Swift Benutzerdefinierte Variablentyp
import Foundation
class Complex {
var real: Float
var imaginary: Float
init(re: Float, im: Float) {
self.imaginary = im
self.real = re
}
func abs() -> Float {
return sqrtf(powf(self.real, 2) + powf(self.imaginary, 2))
}
func string() -> String {
if (ceilf(self.real) == self.real) && (ceilf(self.imaginary) == self.imaginary){
return "\(Int(self.real))+\(Int(self.imaginary))i"
}
return "\(self.real)+\(self.imaginary)i"
}
func arg() -> Float {
return atan2f(self.imaginary, self.real)
}
}
var someComplex = Complex(re: 2, im: 3)
var someComplexString = someComplex.string() //"2+3i"
var someComplexAbsolute = someComplex.abs() // 3.60...
var someComplexArgument = someComplex.arg() //0.98...
Nun ich habe mich gefragt, ob es eine Möglichkeit war eine benutzerdefinierte Variablentyp zu definieren, lassen würde ich schreibe es zum Beispiel als someComplex: Complex = 3i
. Ist es möglich, einen neuen Typ "von Grund auf" zu erstellen?
Was genau versuchen Sie zu tun? Wenn Sie nur irgendeinen Wert speichern möchten, können Sie 'Wert' als' AnyObject' oder 'Any' Typ definieren. – EmilioPelaez
Auch Klassennamen beginnen per Konvention mit einem Großbuchstaben, zB 'SomeClass', und Variablen, auch in Initialisierern, beginnen mit einem Kleinbuchstaben, dh' init (stringValue: String) ' – EmilioPelaez
Anstatt auf einen bereits vorhandenen Typ zuzugreifen a class (var a = someClass.someValue), weisen Sie dem Typ einen Wert direkt zu (var a = someClass) – Pixel