una sumar retorno numeros llamar funciones funcion entrada datos con types parameters swift2

types - sumar - ¿Cómo pasar un tipo Swift como argumento de método?



sumar dos numeros en xcode (1)

Me gustaría hacer algo como esto:

func doSomething(a: AnyObject, myType: ????) { if let a = a as? myType { //… } }

En Objective-C la clase de clase era Class


Tienes que usar una función genérica donde el parámetro solo se usa para información de tipo, así que lo conviertes en T :

func doSomething<T>(_ a: Any, myType: T.Type) { if let a = a as? T { //… } } // usage doSomething("Hello World", myType: String.self)

Usando un inicializador del tipo T

No conoces la firma de T en general porque T puede ser de cualquier tipo. Así que tienes que especificar la firma en un protocolo.

Por ejemplo:

protocol IntInitializable { init(value: Int) }

Con este protocolo puedes escribir

func numberFactory<T: IntInitializable>(value: Int, numberType: T.Type) -> T { return T.init(value: value) } // usage numberFactory(value: 4, numberType: MyNumber.self)