English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
A seguir está listado os tipos de dados mais comuns no Swift:
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。
let result:Bool = true print(result)
Quando você executar o programa, a saída será:
true
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.
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.
é 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
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.
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é
let highScore:Float = 100.232 print(highScore)
Quando você executar o programa, a saída será:
100.232
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)
let highScore:Double = 100.232321212121 print(highScore)
Quando você executar o programa, a saída será:
100.232321212121
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.
let playerName:Character = "J" let playerNameWithUnicode:Character = "\u{134"" print(playerName) print(playerNameWithUnicode)
Quando você executar o programa, a saída será:
J Ĵ
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).
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.
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.