Swift: tipos de datos

Al programar en cualquier lenguaje de programación, debe utilizar diferentes tipos de variables para almacenar información. Las variables no son más que ubicaciones de memoria reservadas para almacenar valores. Esto significa que cuando crea una variable, reserva algo de espacio en la memoria.

Es posible que desee almacenar información de varios tipos de datos como cadena, carácter, carácter ancho, entero, punto flotante, booleano, etc. Según el tipo de datos de una variable, el sistema operativo asigna memoria y decide qué se puede almacenar en el reservado. memoria.

Tipos de datos integrados

Swift 4 ofrece al programador una amplia variedad de tipos de datos integrados y definidos por el usuario. Los siguientes tipos de tipos de datos básicos son los más frecuentes al declarar variables:

  • Int or UInt- Esto se usa para números enteros. Más específicamente, puede usar Int32, Int64 para definir enteros con signo de 32 o 64 bits, mientras que UInt32 o UInt64 para definir variables enteras sin signo de 32 o 64 bits. Por ejemplo, 42 y -23.

  • Float- Se utiliza para representar un número de coma flotante de 32 bits y números con puntos decimales más pequeños. Por ejemplo, 3.14159, 0.1 y -273.158.

  • Double- Se utiliza para representar un número de punto flotante de 64 bits y se utiliza cuando los valores de punto flotante deben ser muy grandes. Por ejemplo, 3.14159, 0.1 y -273.158.

  • Bool - Esto representa un valor booleano que es verdadero o falso.

  • String- Esta es una colección ordenada de personajes. Por ejemplo, "¡Hola, mundo!"

  • Character- Este es un literal de cadena de un solo carácter. Por ejemplo, "C"

  • Optional - Esto representa una variable que puede contener un valor o ningún valor.

  • Tuples - Esto se utiliza para agrupar varios valores en un solo valor compuesto.

Hemos enumerado aquí algunos puntos importantes relacionados con los tipos de números enteros:

  • En una plataforma de 32 bits, Int tiene el mismo tamaño que Int32.

  • En una plataforma de 64 bits, Int tiene el mismo tamaño que Int64.

  • En una plataforma de 32 bits, UInt tiene el mismo tamaño que UInt32.

  • En una plataforma de 64 bits, UInt tiene el mismo tamaño que UInt64.

  • Int8, Int16, Int32, Int64 se pueden utilizar para representar formas de entero con signo de 8 bits, 16 bits, 32 bits y 64 bits.

  • UInt8, UInt16, UInt32 y UInt64 se pueden utilizar para representar formas de entero sin signo de 8 bits, 16 bits, 32 bits y 64 bits.

Valores vinculados

La siguiente tabla muestra el tipo de variable, cuánta memoria se necesita para almacenar el valor en memoria, y cuál es el valor máximo y mínimo que se puede almacenar en ese tipo de variables.

Tipo Ancho típico de la broca Rango típico
Int8 1 byte -127 hasta 127
UInt8 1 byte 0 hasta 255
Int32 4 bytes -2147483648 al 2147483647
UInt32 4 bytes 0 hasta 4294967295
Int64 8 bytes -9223372036854775808 al 9223372036854775807
UInt64 8 bytes 0 a 18446744073709551615
Flotador 4 bytes 1.2E-38 a 3.4E + 38 (~ 6 dígitos)
Doble 8 bytes 2.3E-308 a 1.7E + 308 (~ 15 dígitos)

Alias ​​de tipo

Puede crear un nuevo nombre para un tipo existente usando typealias. Aquí está la sintaxis simple para definir un nuevo tipo usando typealias:

typealias newname = type

Por ejemplo, la siguiente línea le indica al compilador que Feet es otro nombre para Int -

typealias Feet = Int

Ahora, la siguiente declaración es perfectamente legal y crea una variable entera llamada distancia:

typealias Feet = Int
var distance: Feet = 100
print(distance)

Cuando ejecutamos el programa anterior usando playground, obtenemos el siguiente resultado.

100

Tipo de seguridad

Swift 4 es un lenguaje de tipo seguro, lo que significa que si una parte de su código espera un String, no puede pasarle un Int por error.

Como Swift 4 es de tipo seguro, realiza comprobaciones de tipo al compilar su código y marca cualquier tipo no coincidente como error.

var varA = 42
varA = "This is hello"
print(varA)

Cuando compilamos el programa anterior, produce el siguiente error de tiempo de compilación.

main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"

Inferencia de tipo

La inferencia de tipos permite a un compilador deducir el tipo de una expresión en particular automáticamente cuando compila su código, simplemente examinando los valores que usted proporciona. Swift 4 usa la inferencia de tipos para calcular el tipo apropiado de la siguiente manera.

// varA is inferred to be of type Int
var varA = 42
print(varA)

// varB is inferred to be of type Double
var varB = 3.14159
print(varB)

// varC is also inferred to be of type Double
var varC = 3 + 0.14159
print(varC)

Cuando ejecutamos el programa anterior usando el patio de recreo, obtenemos el siguiente resultado:

42
3.14159
3.14159