Diferencia entre var someString = "Some String", var someString: String = "Some String", var someString = "Some String" como string

¿Alguien puede explicarme la diferencia?

var someString = “Some String” var someString: String = “Some String” var someString = “Some String” as String var someString = “Some String” as! String var someString = “Some String” as? String 

 let someString = “Some String” let someString: String = “Some String” 

Para esto dos:

No hay diferencia de eficiencia de time de ejecución entre los dos. Durante la compilation, Swift está infiriendo el tipo y escribiéndolo por usted. Pero una vez comstackdas, las dos declaraciones son idénticas.

 let someString = “Some String” as String 

Significa que está someString valor de cadena a un string si no es una cadena.

 let someString = “Some String” as! String 

Significa que está forzando a "Some String" como una cadena, pero si no es convertible a una cadena, bloqueará la aplicación.

 let someString = “Some String” as? String 

Significa que está lanzando “Some String” a la string si no es convertible a la string, entonces devolverá cero pero no se bloqueará en este punto.

Para la última 3 Declaración Se comstackrá y funcionará, pero definitivamente es incorrecto lanzar String a String. no hay necesidad de lanzar una String a una String .

¿Y los últimos 2 as? y as! siempre tendría éxito en tu caso.

Considere el siguiente ejemplo:

 let stringObject: AnyObject = "Some String" let someString3 = stringObject as! String let someString5 = stringObject as? String 

Esto es cuando necesitarás lanzar. ¡Utiliza as! solo si sabes que es una cadena. ¿Y usar as? si no sabes que será una cadena o no.

¡Solo fuerza abatida con as! si está seguro de lo contrario use el cast condicional como este:

 if let someString5 = stringObject as? String { println(someString5) }