Cuando realiza una asignación como parte de la declaración de una variable (o constante), Swift utiliza el tipo de valor desde el que asigna (el valor r , la cosa en el lado derecho de los iguales). Para cosas como cadenas de dígitos que podrían ser enteros o valores de coma flotante, Swift asume “Int” a menos que haga algo que cambie de opinión. Si tiene dígitos con un punto decimal, Swift sabe que es un Doble de algún tipo. En realidad, utiliza internamente tipos “BlahLiteral”, y cualquier tipo que tenga un método init que tome ese tipo de objeto como argumento puede participar aquí … pero es posible que no desee profundizar demasiado en eso en este momento.
En el ejemplo que le dio salud y poder, ambos son Int, Int está “principalmente” integrado en el lenguaje, al igual que Double, y Float, Bool e Int32 e Int64. También los enteros sin signo. La parte que no está completamente integrada está en la Biblioteca estándar de Swift (escrita en Swift). Si está utilizando Xcode, puede ver los “encabezados” de esos tipos haciendo clic en ellos. Puede ver el código real yendo a Swift.org y descargando el código fuente a Swift y mirando (también puede ver las partes integradas, mirando el compilador de Swift, pero nada de eso es muy emocionante, puedo decirle ese agregado en dos enteros se implementa editando la instrucción ADD de la CPU y verificando si el bit de acarreo se configuró (o a veces ignorando esa verificación si el compilador descubre que no ocurrirá un desbordamiento).
Otras cosas como CGSize están en varios marcos, de nuevo puede hacer clic en la opción (en Xcode) para ver los encabezados. La fuente real de muchos de los otros marcos no está disponible (pero a veces sí lo está, Foundation and Grand Central Dispatch, por ejemplo, es Open Sourced para alguna definición útil de Open Source).
- ¿Cuántos programadores se necesitan para construir un juego de iOS similar a DragonVale?
- ¿Debo aprender póker o desarrollo de iOS para ganar algo de dinero?
- ¿Por qué un iPhone nunca se retrasa o ralentiza incluso después de años de uso, mientras que el Android se cuelga mucho? ¿Hay alguna especialidad en la programación de iOS?
- ¿Cuál es la diferencia entre [code] optionset [/ code] y [code] enums [/ code] en Swift?
- ¿Hay entornos de bases de datos fáciles de usar para desarrollar una aplicación para MAC e iOS que no requieran conectividad a Internet?