Мне нужно написать инициализатор для любого значения FloatingPoint
, которое может принимать другой тип FloatingPoint
, и преобразовать его в Self
. Это возможно в swift
? Я пробовал что-то вроде этого:
init<FloatingPointType: FloatingPoint>(_ value: FloatingPointType) {
guard let sameValue = value as? Self else {
// Pass throu double to get best precision
self.init(Double(value))
return
}
self = sameValue // The same type
}
Но это просто создает бесконечный цикл. Проблема заключается в создании нового себя, не существует инициализатора, который принимает какой-либо другой FloatingPoint
. Я думаю, что это может быть невозможно, но, возможно, есть какой-то способ достичь этого.