Neste tutorial, você aprenderá sobre os diferentes tipos de dados que a linguagem de programação Swift suporta e os usará ao criar uma variável ou constante.
Um tipo de dados é o tipo de dados (valor) que uma variável ou constante pode armazenar nele. Por exemplo, no artigo Swift Variables and Constants, você criou uma variável e uma constante para armazenar dados de string na memória.
Esses dados podem ser um texto / string ("Hello") ou um número (12,45) ou apenas bits (0 e 1). Definir o tipo de dados garante que apenas o tipo de dados definido seja armazenado.
Vejamos um cenário:
Suponha que você queira criar um jogo. Como a maioria dos jogos exibe a pontuação mais alta e o nome do jogador após a conclusão do jogo, você precisa armazenar esses dois dados para o seu jogo.
A pontuação mais alta é um número (por exemplo, 59) e o nome do jogador uma string (por exemplo, Jack). Você pode criar duas variáveis ou constantes para armazenar os dados.
Em Swift, isso pode ser feito declarando variáveis e o tipo de dados como:
var highScore: Int = 59 var playerName: String = "Jack"
Aqui, declaramos a variável highScore do tipo Int
que armazena o valor 59. E a variável playerName do tipo String
que armazena o valor Jack.
No entanto, se você fizer algo assim:
var highScore: Int = "Jack"
Você obterá um erro em tempo de compilação informando que não é possível converter o valor do tipo 'String' para o tipo especificado 'Int' .
É porque você declarou highScore para armazenar valor inteiro, mas colocou string nele. Este erro garante que o highScore pode armazenar apenas um número e não o nome do jogador.
Tamanho de um tipo de dados
Outra parte importante de um tipo de dados é seu tamanho. Isso especifica o tamanho dos dados que podem ser armazenados em uma determinada variável ou constante.
O tamanho de um tipo é medido em termos de bits e pode armazenar valores de até 2 bits . Se você não conhece o Bit, pense nele como um valor 0 ou 1.
Portanto, para um tamanho de tipo = 1 bit, ele só pode armazenar até 2 1 = 2, dois valores: 0 ou 1. Portanto, um sistema de 1 bit para um programa de letras pode interpretar 0 como a / 0 e 1 como b / 1.0.
0 -> a ou 0 1 -> b ou 1
Da mesma forma, um sistema de dois bits pode armazenar até 2 2 = 4 valores: (00,01,10,11) e cada combinação pode ser representada como:
00 -> a ou 0 01 -> b ou 11 -> c ou 2 10 -> d ou 3
Para um sistema de bits, ele pode armazenar no máximo 2 n valores.
Tipos de dados Swift
Os tipos de dados mais comuns usados em swift estão listados abaixo:
Bool
- A variável / constante declarada do tipo Bool pode armazenar apenas dois valores
true
oufalse
. - Valor padrão : falso
- É freqüentemente usado quando você trabalha com
if-else
instrução. O artigo Swift se mais cobre em detalhes sobre isso.
Exemplo 1: tipo de dados booleano
let result:Bool = true print(result)
Quando você executa o programa, a saída será:
verdade
Inteiro
- A variável / constante declarada do tipo inteiro pode armazenar números inteiros positivos e negativos, incluindo zero, sem componentes fracionários.
- Valor padrão : 0
- Tamanho : 32/64 bits depende do tipo de plataforma.
- Faixa : -2.147.483.648 a 2.147.483.647 (plataforma de 32 bits)
-9223372036854775808 a 9223372036854775807 (plataforma de 64 bits - Existem muitas variantes de Integer type.eg
UInt
,Int8
,Int16
etc. O mais comum que você usa é deInt
. - Se você tem uma exigência para especificar o tamanho / tipo de inteiro uma variável / constante pode segurar, você pode armazená-lo mais especificamente utilizando
UInt
,Int8
,Int16
etc, que vamos explorar abaixo.
Exemplo 2: tipo de dados inteiro
var highScore:Int = 100 print(highScore) highScore = -100 print(highScore)
Quando você executa o programa, a saída será:
100 -100
No exemplo acima, declaramos uma variável highScore do tipo Int
. Primeiro, atribuímos a ele um valor de 100, portanto, print(highScore)
geramos 100 na tela.
Posteriormente, alteramos o valor para -100 usando o operador de atribuição, highScore = -100
assim, print(highScore)
gera -100 na tela.
Vamos explorar algumas variantes do Int
tipo em Swift.
Int8
- Variante do tipo inteiro que pode armazenar pequenos números positivos e negativos.
- Valor padrão : 0
- Tamanho : 8 bits
- Faixa : -128 a 127
Um Int8
número inteiro pode armazenar 2 8 = (256) valores no total. ou seja, ele pode armazenar números de 0 a 255 certo?
Yes, you are correct. But since, Int8
includes both positive and negative numbers we can store numbers from -128 to 127 including 0 which totals to 256 values or numbers.
var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here
You can also find out the highest and lowest value a type can store using .min
and .max
built in Swift functions.
Example 3: Max and Min Int8 data type
print(Int8.min) print(Int8.max)
When you run the program, the output will be:
-128 127
UInt
- Variant of Integer type called UInt (Unsigned Integer) which can only store unsigned numbers (positive or zero).
- Default Value: 0
- Size: 32/64 bit depends on the platform type.
- Range: 0 to 4294967295 (32 bit platform)
0 to 18446744073709551615 (64 bit platform)
Example 4: UInt data type
var highScore:UInt = 100 highScore = -100//compile time error when trying to
The above code will give you a compile time error because a Unsigned Integer can only store either 0 or a positive value. Trying to store a negative value in an Unsigned Integer will give you an error.
Float
- Variables or Constants declared of float type can store number with decimal or fraction points.
- Default Value: 0.0
- Size: 32 bit floating point number.
- Range: 1.2*10-38 to 3.4 * 1038 (~6 digits)
Example 5: Float data type
let highScore:Float = 100.232 print(highScore)
When you run the program, the output will be:
100.232
Double
- Variables / Constants declared of Double type also stores number with decimal or fraction points as Float but larger decimal points than Float supports.
- Default value : 0.0
- Size: 64-bit floating point number. (Therefore, a variable of type Double can store number with decimal or fraction points larger than Float supports)
- Range: 2.3*10-308 to 1.7*10308 (~15 digits)
Example 6: Double data type
let highScore:Double = 100.232321212121 print(highScore)
When you run the program, the output will be:
100.232321212121
Character
- Variables/Constants declared of Character type can store a single-character string literal.
- You can include emoji or languages other than english as an character in Swift using escape sequence u(n) (unicode code point ,n is in hexadecimal).
Example 7: Character data type
let playerName:Character = "J" let playerNameWithUnicode:Character = "u(134)" print(playerName) print(playerNameWithUnicode)
When you run the program, the output will be:
J Ĵ
String
- Variables or Constants declared of String type can store collection of characters.
- Default Value: "" (Empty String)
- It is Value type. See Swift value and Reference Type .
- You can use for-in loop to iterate over a string. See Swift for-in loop.
- Swift also supports a few special escape sequences to use them in string. For example,