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

Tipos de Dados em Swift

Neste tutorial, você aprenderá os diferentes tipos de dados suportados pela linguagem de programação Swift e usá-lo ao criar variáveis ou constantes.

O tipo de dados é o tipo de dados (valor) que uma variável ou constante pode armazenar. Por exemplo, no artigoVariáveis e constantes do Swift,você criou uma variável e um constante para armazenar dados de string na memória.

Os dados podem ser texto/String (“ Hello”) ou número(12.45),também pode ser bits (0&1)。Definir o tipo de dados garante que apenas o tipo de dados definido seja armazenado.

Vamos ver um cenário:

Suponha que você precise criar um jogo. Como a maioria dos jogos exibe o highScore e o nome do jogador após o jogo, você precisa armazenar esses dois dados para o jogo.

O highScore é um número (por exemplo 59),o nome do jogador (playerName) é uma string (por exemplo, Jack). Você pode criar duas variáveis ou constantes para armazenar dados.

No Swift, isso pode ser feito declarando a variável e o tipo de dados:

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

Aqui, declaramos a variável HighScore do tipo Int, que armazena o valor59。E também a variável de tipo de string para armazenar o valor Jack, playerName.

Mas, se você executar a seguinte operação:

var highScore:Int = "Jack"

Você receberá um erro de compilação, lançando Não é possível converter o valor do tipo 'String' para o tipo 'Int' especificado

Isso é porque você declarou highScore para armazenar valores inteiros, mas colocou uma string nele. Este erro garante que highScore possa armazenar apenas um número e não o nome do jogador.

Tamanho do tipo de dados

A outra parte importante do tipo de dados é seu tamanho. Isso especifica o tamanho de dados que pode ser armazenado em uma variável ou constante dada.

O tamanho do Type é medido em bits, e pode armazenar no máximo 2bitsSe você entender Bit(bit),pode imaginá-lo como um 0 ou1valores.

Portanto, paraType size = 1 se o número de bits for 2 1 = 2,dois valores: 0 ou 1。Portanto, o algoritmo de letras pode1o sistema de bits pode interpretar 0 como a/0, e1interpretado como b/1.0.

0 -> a ou 0 
1 -> b ou 1

Da mesma forma, o sistema binário pode armazenar no máximo2 2 = 4valores: (00,01,10,11),cada combinação pode ser representada como:

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

Para o sistema de bits, ele pode armazenar no máximo2 n valoresvalores.

Tipos de dados do Swift

A seguir está listado os tipos de dados mais comuns no Swift:

Tipo booleano (Bool)

  • Variáveis declaradas como tipo Bool/Constantes podem armazenar apenas dois valores true ou false.

  • Valor padrão:false

  • ao lidar com if-é frequentemente usado no else. Você pode consultar o artigo Swift if else

Exemplo1:Tipo de dados booleano

let result:Bool = true
print(result)

Quando você executar o programa, a saída será:

true

Tipo de dados inteiro (Integer)

  • Variáveis declaradas como tipo inteiro/Constantes podem armazenar números positivos e negativos, incluindo zero, sem parte fracionária.

  • Valor padrão:0

  • Tamanho:32/64dígitos dependem do tipo de plataforma.

  • intervalo de valores:-2,147,483,648 até 2,147,483,647(32plataforma) até
    -9223372036854775808 até 9223372036854775807(64plataforma) até

  • Existem muitas variantes do tipo Integer, por exemplo, UInt e Int8,Int16e assim por diante. O mais comum é Int.

  • Se precisar especificar a variável/o tamanho dos inteiros que as constantes podem conter/Tipos, que podem usar UInt, Int8、Int16e mais especificamente, armazená-lo, explicaremos isso abaixo.

Exemplo2:tipo de dados inteiro

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

Quando você executar o programa, a saída será:

100
-100

No exemplo acima, declaramos uma variável do tipo Int chamada highScore. Primeiro, atribuímos a ela100, portanto print (highScore) é impresso na tela100.

depois, usamos o operador de atribuição highScore =-100, então alteramos o valor para -100, portanto, ao imprimir (highScore) output-100.

Vamos ver algumas variantes do tipo Int no Swift.

Int8(inteiro)

  • é uma variante de tipo de inteiro que pode armazenar números positivos e negativos.

  • Valor padrão:0

  • Tamanho:8dígitos

  • faixa:-128 até 127

um Int8Os inteiros podem armazenar um total de2 8 =256) valores. Isso é, ele pode armazenar de 0 até 255entre os números.

mas devido ao Int8 incluso números positivos e negativos, podemos armazenar de-128até127números, incluindo 0, totalizando256valores ou números.

var highScore:Int8 = -128//correto
highScore = 127 //correto
highScore = 128 //erro
highScore = -129 //erro

Você também pode usar Função Swift Os métodos min e max integrados podem encontrar o maior e o menor valor que o tipo pode armazenar.

Exemplo3:maior e menor Int8Tipo de dados

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

Quando você executar o programa, a saída será:

-128
127

UInt (inteiro sem sinal)

  • Variantes de tipos de inteiros chamadas UInt (inteiro sem sinal), que podem armazenar apenas números sem sinal (números positivos ou zero).

  • Valor padrão:0

  • Tamanho:32/64dígitos dependem do tipo de plataforma.

  • faixa:0 até 4294967295(32plataforma) até
    0 até 18446744073709551615(64plataforma) até

Exemplo4:tipo de dados UInt (inteiro sem sinal)

var highScore:UInt = 100
highScore = -100 //Erro ao tentar executar a seguinte operação

O código acima gerará um erro de compilação porque os inteiros sem sinal podem armazenar apenas 0 ou valores positivos. Tentar armazenar um valor negativo em um inteiro sem sinal gerará um erro.

Float (número de ponto flutuante)

  • Variáveis ou constantes declaradas como ponto flutuante podem armazenar números com ponto flutuante ou números com ponto flutuante.

  • Valor padrão:0.0

  • Tamanho:32dígitos de ponto flutuante.

  • faixa:1.2 * 10 -38até3.4 * 10 38(~6dígitos) até

Exemplo5:tipo de dados de ponto flutuante

let highScore:Float = 100.232
print(highScore)

Quando você executar o programa, a saída será:

100.232

Double (número de ponto flutuante duplo)

  • Variáveis declaradas como Double/Constantes também armazenarão números com ponto flutuante ou números com ponto flutuante maior do que o suportado pelo Float.

  • Valor padrão:0.0

  • Tamanho:64Número de ponto flutuante. (Portanto, as variáveis do tipo Double podem armazenar números com decimal ou ponto flutuante maior que o suportado pelo Float)

  • faixa:2.3×10 -308~1.7 * 10 308(~15bits)

Exemplo6:Tipo de dados de dupla precisão

let highScore:Double = 100.232321212121
print(highScore)

Quando você executar o programa, a saída será:

100.232321212121

Character (caractere)

  • Variáveis declaradas como tipo Character/As constantes podem armazenar literais de strings de caractere único.

  • Você pode usar sequências de escape \u{n} (caractere Unicode, n representado em hexadecimal) no Swift para usar emojis ou idiomas além do inglês como caracteres.

Exemplo7:Tipo de dados de caractere

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

Quando você executar o programa, a saída será:

J
Ĵ

String (string)

  • As variáveis ou constantes declaradas como tipo String podem armazenar conjuntos de caracteres.

  • Valor padrão:""(string vazia)

  • É um tipo de valor.

  • Você pode usar o for-no loop de iteração de strings.referênciaSwift for-no loop

  • O Swift também suporta algumas sequências de escape especiais para usá-las em strings. Por exemplo,

    • \0 (caractere nulo),

    • \\(sinal de的反斜杠),

    • \t (tabulação),

    • \v (etiqueta vertical),

    • \r (retorno de carro),

    • \" (aspas duplas),

    • \' (aspas simples), e

    • \u{n} (string Unicode, n representado em hexadecimal).

Exemplo8:Tipo de dados de string

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

Quando você executar o programa, a saída será:

Jack
"Jack"
Ĵack

por favor consulteSwift characters and strings,para obter mais informações sobre declaração, operações e exemplos de caracteres e strings.

Além deste tipo de dados, o Swift também possui outros tipos de dados avançados, como tuple,optional,range,class,structure Você aprenderá mais sobre isso nos capítulos posteriores.

Coisas a lembrar

1Devido ao Swift ser um linguagem de inferência de tipo, as variáveis ou constantes podem inferir automaticamente o tipo a partir do valor armazenado. Portanto, você pode pular o tipo ao criar variáveis ou constantes. No entanto, pode considerar escrever o tipo para melhor legibilidade, mas não é recomendado fazer isso.

Exemplo9:Variável com inferência de tipo/Constante

let playerName = "Jack"
print(playerName)

O compilador Swift pode inferir automaticamente o tipo String da variável com base em seu valor.

2. Swift é uma linguagem de segurança de tipo. Se você definir uma variável como um tipo específico, não pode usar outros tipos de dados para alterá-la posteriormente.

Exemplo10:Swift é uma linguagem de segurança de tipo

let playerName: String
playerName = 55 //erro de tempo de compilação

O código acima gerará um erro porque já especificamos que a variável playerName será String. Portanto, não podemos armazenar um inteiro nele.