Considera lo siguiente:
protocol SomeProtocol: Equatable {} // then, elsewhere... var someValue: Any? func setSomething<T>(_ value: T) where T: SomeProtocol { someValue = value } func getSomething<T>() -> T? where T: SomeProtocol { return someValue as? T }Estas funciones funcionan bien, pero esencialmente actúan como propiedades calculadas. ¿Hay alguna manera de implementar algo como lo siguiente?
var something<T>: T where T: SomeProtocol { get { return someValue as? T } set { someValue = newValue } }Gracias por leer. Disculpas si esta pregunta ya se ha hecho en otro lugar, he buscado pero a veces mi búsqueda es débil.
Debe definir la propiedad computada en un tipo genérico, la propiedad computada en sí misma no puede definir un parámetro de tipo genérico.
struct Some<T:SomeProtocol> { var someValue:Any var something:T? { get { return someValue as? T } set { someValue = newValue } } }