Swift - Tipos de dados
Ao programar em qualquer linguagem de programação, você precisa usar diferentes tipos de variáveis para armazenar informações. As variáveis nada mais são do que locais de memória reservados para armazenar valores. Isso significa que, ao criar uma variável, você reserva algum espaço na memória.
Você pode gostar de armazenar informações de vários tipos de dados como string, caractere, caractere largo, inteiro, ponto flutuante, Booleano, etc. Com base no tipo de dados de uma variável, o sistema operacional aloca memória e decide o que pode ser armazenado no reservado memória.
Tipos de dados integrados
O Swift 4 oferece ao programador uma rica variedade de tipos de dados integrados e definidos pelo usuário. Os seguintes tipos de tipos de dados básicos são mais frequentes ao declarar variáveis -
Int or UInt- Isso é usado para números inteiros. Mais especificamente, você pode usar Int32, Int64 para definir um inteiro assinado de 32 ou 64 bits, enquanto UInt32 ou UInt64 para definir variáveis inteiras sem sinal de 32 ou 64 bits. Por exemplo, 42 e -23.
Float- É usado para representar um número de ponto flutuante de 32 bits e números com casas decimais menores. Por exemplo, 3,14159, 0,1 e -273,158.
Double- Isso é usado para representar um número de ponto flutuante de 64 bits e usado quando os valores de ponto flutuante devem ser muito grandes. Por exemplo, 3,14159, 0,1 e -273,158.
Bool - Isso representa um valor booleano que é verdadeiro ou falso.
String- Esta é uma coleção ordenada de personagens. Por exemplo, "Hello, World!"
Character- Este é um literal de string de um único caractere. Por exemplo, "C"
Optional - Isso representa uma variável que pode conter um valor ou nenhum valor.
Tuples - É usado para agrupar vários valores em um único valor composto.
Listamos aqui alguns pontos importantes relacionados aos tipos inteiros -
Em uma plataforma de 32 bits, Int é do mesmo tamanho que Int32.
Em uma plataforma de 64 bits, Int tem o mesmo tamanho que Int64.
Em uma plataforma de 32 bits, UInt tem o mesmo tamanho que UInt32.
Em uma plataforma de 64 bits, UInt tem o mesmo tamanho que UInt64.
Int8, Int16, Int32, Int64 podem ser usados para representar formas de inteiros assinados de 8 bits, 16 bits, 32 bits e 64 bits.
UInt8, UInt16, UInt32 e UInt64 podem ser usados para representar formas de inteiros não assinados de 8 bits, 16 bits, 32 bits e 64 bits.
Valores Vinculados
A tabela a seguir mostra o tipo de variável, quanta memória é necessária para armazenar o valor na memória e qual é o valor máximo e mínimo que pode ser armazenado neste tipo de variável.
Tipo | Largura de bit típica | Alcance Típico |
---|---|---|
Int8 | 1 byte | -127 a 127 |
UInt8 | 1 byte | 0 a 255 |
Int32 | 4 bytes | -2147483648 a 2147483647 |
UInt32 | 4 bytes | 0 a 4294967295 |
Int64 | 8 bytes | -9223372036854775808 a 9223372036854775807 |
UInt64 | 8 bytes | 0 a 18446744073709551615 |
Flutuador | 4 bytes | 1.2E-38 a 3.4E + 38 (~ 6 dígitos) |
em dobro | 8 bytes | 2,3E-308 a 1,7E + 308 (~ 15 dígitos) |
Digite aliases
Você pode criar um novo nome para um tipo existente usando typealias. Aqui está a sintaxe simples para definir um novo tipo usando typealias -
typealias newname = type
Por exemplo, a linha a seguir instrui o compilador que Feet é outro nome para Int -
typealias Feet = Int
Agora, a seguinte declaração é perfeitamente legal e cria uma variável inteira chamada distância -
typealias Feet = Int
var distance: Feet = 100
print(distance)
Quando executamos o programa acima usando playground, obtemos o seguinte resultado.
100
Segurança de tipo
Swift 4 é uma linguagem de tipo seguro, o que significa que se uma parte do seu código espera uma String, você não pode passar um Int por engano.
Como o Swift 4 é seguro para tipos, ele executa verificações de tipo ao compilar seu código e sinaliza quaisquer tipos incompatíveis como erros.
var varA = 42
varA = "This is hello"
print(varA)
Quando compilamos o programa acima, ele produz o seguinte erro de tempo de compilação.
main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"
Inferência de tipo
A inferência de tipo permite que um compilador deduza o tipo de uma expressão específica automaticamente ao compilar seu código, simplesmente examinando os valores fornecidos. O Swift 4 usa inferência de tipo para descobrir o tipo apropriado da seguinte maneira.
// 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)
Quando executamos o programa acima usando playground, obtemos o seguinte resultado -
42
3.14159
3.14159