Latest web development tutorials

Tipos de Dados Swift

Quando usamos qualquer tipo de programação linguagem de programação, você precisa usar uma variedade de tipos de dados para armazenar informações diferentes.

O tipo de dados da variável determina como a memória bit estes valores na memória do computador. Você também pode especificar o tipo de dados quando você declarar uma variável.

Todas as variáveis ​​têm o tipo de dados para determinar quais os dados podem ser armazenados.


Built-in tipos de dados

Swift fornece uma rica tipos de dados, aqui estão vários tipos de dados comumente usados:

int

Geralmente, você não precisa designado especificamente inteiros de comprimento. Swift fornece um tipo especial inteiro Int , o comprimento do vocabulário original e o mesmo comprimento da plataforma de corrente:

  • Em plataformas de 32 bits, Int e Int32 mesmo comprimento.
  • Em plataformas de 64 bits, Int e Int64 mesmo comprimento.

A menos que você precisa de um número inteiro comprimento específico, no uso geral Int suficiente. Isso pode melhorar a consistência e reutilização de código. Mesmo em plataformas de 32 bits, Int intervalo inteiro que pode ser armazenado pode ser alcançado -2,147,483,648 ~ 2,147,483,647 , a maior parte do tempo, esta é já suficientemente grande.

uint

Swift também oferece um tipo sem sinal especial UInt , o comprimento do vocabulário original e o mesmo comprimento da plataforma de corrente:

  • Em plataformas de 32 bits, UInt e UInt32 mesmo comprimento.
  • Em plataformas de 64 bits, UInt e UInt64 mesmo comprimento.

Nota:
Tente não usar UInt , a menos que você realmente precisa para armazenar uma plataforma atual e vocabulário original do inteiro sem sinal mesmo comprimento. Em adição a isto, é preferível utilizar Int , mesmo se quiser armazenar o valor de uma conhecida não-negativo. utilização unificada Int pode melhorar a reutilização do código, para evitar a conversão entre diferentes tipos de digital e digital de tipo de correspondência inferência, consulte o tipo de segurança e inferência de tipos .

flutuador

Float é um número com uma parte decimal, como 3.14159 , 0.1 e -273.15 .

Mais ampla do que a representação tipo de ponto flutuante do tipo inteiro que pode armazenar mais de Int tipo números maiores ou menores. ofertas Swift dois assinaram tipo de ponto flutuante:

  • Double representam ponto flutuante de 64 bits. Quando você precisa para armazenar grande número ou muito alta precisão de ponto flutuante, use este tipo.
  • Float representa o número de ponto flutuante de 32 bits. Menos de precisão, então podemos usar este tipo.

Nota:
Double precisão é muito elevado, pelo menos 15 dígitos, Float aconteceu apenas seis dígitos. Selecione o intervalo de valores dependendo do tipo precisam ser abordadas seu código.

valor booleano

Swift tem um tipo booleano básica (Boolean), chamado Bool. valor booleano refere-se à lógica de valor, porque eles só podem ser verdadeiras ou falsas. Swift tem dois constante booleana, o verdadeiro eo falso.

corda

String é um conjunto de sequências de caracteres, tais como:

"Hello, World!"

personagem

Caráter refere-se a uma única letra, por exemplo:

"C"

tipo opcional

Use o tipo de opcional (opcionais) para lidar com o caso os valores em falta. opcional tipo representa um valor ou nenhum valor.


faixa de valores

A tabela a seguir mostra o espaço mínimo e máximo de armazenamento de diferentes tipos de variáveis ​​de memória e tipos de variáveis:

tipo Tamanho (bytes) Valor intervalo
iNT8 1 byte -127 A 127
uint8 1 byte 0-255
Int32 4 bytes -2147483648 A 2147483647
UInt32 4 bytes 0-4294967295
Int64 8 bytes -9223372036854775808 Para 9223372036854775807
UInt64 8 bytes 0-18446744073709551615
flutuador 4 bytes 1.2E-38 a 3.4E + 38 (~ 6 dígitos)
duplo 8 bytes 2.3E-308 a 1.7E + 308 (~ 15 dígitos)

alias de tipo

Digite um alias para o tipo atual define um outro nome, digite o alias definido usando typealias palavra-chave. Sintaxe é como se segue:

typealias newname = type

O exemplo a seguir define os pés tipo de alias Int:

typealias Feet = Int

Agora, podemos definir um alias de variável:

import Cocoa

typealias Feet = Int
var distance: Feet = 100
print(distance)

Nós usamos o playground o programa acima, a saída é:

100

tipo de segurança

Swift é um tipo de linguagem de segurança (tipo seguro).

Porque Swift é de tipo seguro, por isso vai ser o tipo de inspeção (verificações de tipo) a compilar o código, e não combinam com o tipo de marca como um erro. Isto permite-lhe encontrar e corrigir erros no início do desenvolvimento do tempo.

import Cocoa

var varA = 42
varA = "This is hello"
print(varA)

O procedimento acima será dada no Xcode:

error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"

Significado não pode ser string 'String' atribuído à variável 'int'.


inferência de tipos

Quando você tem que lidar com diferentes tipos de valores, a verificação de tipo pode ajudar a evitar erros. No entanto, isso não significa que toda vez que você declarar constantes e variáveis ​​precisa especificar explicitamente o tipo.

Se você não especificar explicitamente o tipo, Swift usa o tipo de inferência (inferência de tipos) para selecionar o tipo apropriado.

Por exemplo, se você der um novo valor constante 42 e não indica o tipo, a Swift pode inferir tipo Int constante, porque o valor inicial que você atribua a ele se parece com um inteiro:

let meaningOfLife = 42
// meaningOfLife 会被推测为 Int 类型

Da mesma forma, se você não tem que indicar o tipo de literais de ponto flutuante, Swift irá inferir que você quer é duplo:

let pi = 3.14159
// pi 会被推测为 Double 类型

Quando um tipo de inferência de ponto flutuante, Swift vai sempre escolher em vez de flutuante duplo.

Se a mesma expressão como inteiro e ponto flutuante, serão inferidos tipo Double:

let anotherPi = 3 + 0.14159
// anotherPi 会被推测为 Double 类型

O valor original de 3 de não declarar explicitamente o tipo, ea expressão não é um ponto flutuante literal, a expressão será presumido que tipo Double.

Exemplos

import Cocoa

// varA 会被推测为 Int 类型 
var varA = 42
print(varA)

// varB 会被推测为 Double 类型  
var varB = 3.14159
print(varB)

// varC 也会被推测为 Double 类型   
var varC = 3 + 0.14159
print(varC)

Implementação do código acima, a saída é:

42
3.14159
3.14159