Для работы с комплексными числами, это то, как я делал это:Swift Пользовательская переменная Тип
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...
Теперь мне было интересно, есть ли способ определить пользовательский тип переменной, которая позволит Я напишу его как someComplex: Complex = 3i
, например. Можно ли создать новый тип «с нуля»?
Что именно вы пытаетесь сделать? Если вы хотите сохранить какое-либо значение, вы можете определить 'значение' как тип AnyObject или' Any'. – EmilioPelaez
Имена классов, по соглашению, начинаются с буквы верхнего регистра, то есть 'SomeClass', а переменные, даже в инициализаторах, начинаются с строчной буквы, то есть' init (stringValue: String) ' – EmilioPelaez
Вместо того, чтобы обращаться к уже существующему типу в класс (var a = someClass.someValue), присвойте значение непосредственно типу (var a = someClass) – Pixel