English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tipos de datos en Swift

En este tutorial, aprenderá los diferentes tipos de datos admitidos por el lenguaje de programación Swift y cómo usarlos al crear variables o constantes.

El tipo de datos es el tipo de datos (valor) en el que se pueden almacenar las variables o constantes. Por ejemplo, en el artículoVariables y constantes de Swift,ha creado una variable y una constante para almacenar los datos de cadena en la memoria.

Los datos pueden ser texto/Cadena (“ Hello”) o número(12.45),también puede ser un bit (0&1)。Definir el tipo de datos asegura que solo se almacene el tipo de datos definido.

Veamos un escenario:

Supongamos que desea crear un juego. Dado que la mayoría de los juegos muestran el puntaje alto y el nombre del jugador al finalizar, necesita almacenar estos dos datos para el juego.

El puntaje alto (highScore) es un número (por ejemplo 59),el nombre del jugador (playerName) es una cadena (por ejemplo, Jack). Puede crear dos variables o constantes para almacenar datos.

En Swift, esto se puede hacer declarando la variable y el tipo de datos como:

var highScore:Int = 59
var playerName:String = "Jack"

Aquí, declaramos la variable HighScore de tipo Int, que almacena el valor59。 Y la variable de tipo cadena que almacena el valor Jack, playerName.

Pero, si realiza la siguiente acción:

var highScore:Int = "Jack"

Obtendrá un error en tiempo de compilación, lanzando No se puede convertir el valor de tipo 'String' al tipo 'Int' especificado

Esto se debe a que declaró highScore para almacenar valores enteros, pero colocó una cadena en él. Este error asegura que highScore solo pueda almacenar un número y no el nombre del jugador.

Tamaño de los tipos de datos

Otro aspecto importante de los tipos de datos es su tamaño. Esto especifica el tamaño de los datos que se pueden almacenar en una variable o constante dada.

El tamaño del tipo de datos se mide en bits, y puede almacenar como máximo 2bits。Si conoce Bit (bit), puede imaginárselo como un 0 o1valores.

Por lo tanto, paraType size = 1 bit, entonces puede almacenar como máximo 2 1 = 2,dos valores: 0 o 1。Por lo tanto, el programa de letras1el sistema de bits puede interpretar 0 como a/0, y1interpretado como b/1.0.

0 -> a o 0 
1 -> b o 1

Del mismo modo, el sistema binario puede almacenar como máximo2 2 = 4valores: (00,01,10,11),cada combinación puede representarse como:

00 -> a o 0
01 -> b o 1
11 -> c o 2
10 -> d o 3

Para el sistema de bits, puede almacenar como máximo2 n valoresvalores.

Tipos de datos Swift

A continuación, se lista los tipos de datos más comunes en Swift:

Tipo booleano (Bool)

  • Variable declarada como tipo Bool/Las constantes solo pueden almacenar dos valores true o false.

  • valor predeterminado:false

  • al manejar if-se utiliza a menudo en la declaración else. Puede referirse al artículo Swift if else

Ejemplo1:Tipo de datos booleano

let result:Bool = true
print(result)

Al ejecutar el programa, la salida es:

true

Tipo de datos entero (Integer)

  • Variable declarada como tipo entero/Las constantes pueden almacenar números enteros positivos y negativos, incluyendo cero, sin parte decimal.

  • valor predeterminado:0

  • Tamaño:32/64número de dígitos depende del tipo de plataforma.

  • rango de valores:-2,147,483,648 hasta 2,147,483,647(32de plataformas)
    -9223372036854775808 hasta 9223372036854775807(64de plataformas)

  • Hay muchas variantes del tipo Integer, como UInt, Int8,Int16entre otros. El más común es Int.

  • Si necesita especificar la variable/el tamaño de los enteros que pueden contener las constantes/tipos, se pueden usar UInt, Int8、Int16Para almacenarlo de manera más específica, lo cubriremos a continuación.

Ejemplo2:tipo de datos entero

var highScore:Int = 100
print(highScore)
highScore = -100
print(highScore)

Al ejecutar el programa, la salida es:

100
-100

En el ejemplo anterior, declaramos una variable de tipo Int llamada highScore. Primero, la asignamos un valor de100, por lo tanto print (highScore) se imprime en la pantalla100。

Luego, usamos el operador de asignación highScore =-100 Cambie el valor a -100, por lo tanto, al imprimir (highScore) output-100。

Veamos algunas variantes del tipo Int en Swift.

Int8(entero)

  • es una variante de tipo de entero que puede almacenar números positivos y negativos.

  • valor predeterminado:0

  • Tamaño:8bits

  • rango:-128 hasta 127

un Int8Un entero puede almacenar un total de2 8 =256) valores. Es decir, puede almacenar de 0 a 255entre los números.

pero debido a que Int8 Incluyendo números positivos y negativos, podemos almacenar desde-128hasta127los números, incluyendo 0, son un total de256valores o números.

var highScore:Int8 = -128//correcto
highScore = 127 //correcto
highScore = 128 //error
highScore = -129 //error

También puede usar Función Swift Los métodos内置.min y.max pueden encontrar los valores máximos y mínimos que puede almacenar el tipo.

Ejemplo3:valores máximos y mínimos de Int8Tipo de datos

print(Int8.min)
print(Int8.max)

Al ejecutar el programa, la salida es:

-128
127

UInt (entero sin signo)

  • Las variantes de tipos de enteros, denominadas UInt (entero sin signo), solo pueden almacenar números sin signo (valores positivos o cero).

  • valor predeterminado:0

  • Tamaño:32/64número de dígitos depende del tipo de plataforma.

  • rango:0 hasta 4294967295(32de plataformas)
    0 hasta 18446744073709551615(64de plataformas)

Ejemplo4:tipo de datos UInt (entero sin signo)

var highScore:UInt = 100
highScore = -100 //Se producirá un error en tiempo de compilación al intentar ejecutar lo siguiente

El código anterior lanzará un error en tiempo de compilación porque los enteros sin signo solo pueden almacenar 0 o valores positivos. Intentar almacenar un valor negativo en un entero sin signo le lanzará un error.

Float (número de coma flotante)

  • Las variables o constantes declaradas como tipo flotante pueden almacenar números con punto decimal o puntos decimales.

  • valor predeterminado:0.0

  • Tamaño:32número de coma flotante.

  • rango:1.2 * 10 -38hasta3.4 * 10 38(〜6número de dígitos)

Ejemplo5:tipo de datos de coma flotante

let highScore:Float = 100.232
print(highScore)

Al ejecutar el programa, la salida es:

100.232

Double (número de coma flotante de doble precisión)

  • Variable declarada como tipo Double/Las constantes también almacenan números con punto decimal o puntos decimales más grandes que los soportados por Float.

  • valor predeterminado:0.0

  • Tamaño:64Número de coma flotante. (Por lo tanto, las variables de tipo Double pueden almacenar números con decimales o puntos decimales más grandes que los soportados por Float)

  • rango:2.3×10 -308〜1.7 * 10 308(〜15bits)

Ejemplo6:tipo de datos de doble precisión

let highScore:Double = 100.232321212121
print(highScore)

Al ejecutar el programa, la salida es:

100.232321212121

Character (carácter)

  • Declarar una variable/Las constantes pueden almacenar literals de cadena de un solo carácter.

  • Puede usar la secuencia de escape \u{n} (carácter Unicode, n en hexadecimal) en Swift para usar emojis o idiomas además del inglés como caracteres.

Ejemplo7:tipo de datos de carácter

let playerName:Character = "J"
let playerNameWithUnicode:Character = "\u{134"
print(playerName)
print(playerNameWithUnicode)

Al ejecutar el programa, la salida es:

J
Ĵ

String (cadena)

  • Las variables o constantes declaradas como String pueden almacenar un conjunto de caracteres.

  • valor predeterminado:""(cadena vacía)

  • es de tipo valor.

  • Puede usar for-en el bucle para recorrer la cadena.referenciaSwift for-en el bucle

  • Swift también admite algunas secuencias de escape especiales para usarlas en cadenas. Por ejemplo,

    • \0 (carácter de espacio en blanco),

    • \\\ (un backslash común \),

    • \t (tabulador),

    • \v (etiqueta vertical),

    • \r (retorno de carro),

    • \" (comillas dobles),

    • \' (comilla simple), y

    • \u{n} (cadena Unicode, n representado en hexadecimal).

Ejemplo8:tipo de datos de cadena

let playerName = "Jack"
let playerNameWithQuotes = "\"Jack\""
let playerNameWithUnicode = "\u{134}"
print(playerName)
print(playerNameWithQuotes)
print(playerNameWithUnicode)

Al ejecutar el programa, la salida es:

Jack
"Jack"
Ĵack

ConsulteSwift caracteres y cadenas,para obtener más información sobre la declaración, operaciones y ejemplos de caracteres y cadenas.

Además de este tipo de datos, Swift tiene otros tipos de datos avanzados, como tupla,opcional,rango,clase,estructura más tarde en el capítulo.

Cosas a recordar

1Dado que Swift es un lenguaje de inferencia de tipos, las variables o constantes pueden inferir automáticamente el tipo desde el valor almacenado. Por lo tanto, puede omitir el tipo al crear variables o constantes. Sin embargo, considera escribir tipos por legibilidad, aunque no se recomienda hacerlo.

Ejemplo9:Variables con inferencia de tipo/Constantes

let playerName = "Jack"
print(playerName)

El compilador de Swift puede inferir automáticamente el tipo de String para la variable.

2. Swift es un lenguaje de tipo seguro. Si se define una variable de un tipo determinado, no se puede usar otro tipo de datos para cambiarla.

Ejemplo10:Swift es un lenguaje de tipo seguro

let playerName: String
playerName = 55 //error en tiempo de compilación

El código siguiente generará un error porque ya hemos especificado que la variable playerName será de tipo String. Por lo tanto, no podemos almacenar un entero en ella.