Swift, uma linguagem de programação lançada pela Apple em 2014, rapidamente se tornou uma das linguagens de crescimento mais rápido da história . Se você estiver interessado em criar aplicativos para macOS ou iOS, Swift é a melhor escolha de idioma na minha opinião.
Neste tutorial, nos familiarizaremos com o Swift , aprendendo suas operações básicas e praticando com alguns exemplos relevantes. Vamos começar!
Instalação
O Swift está disponível no Mac, Windows e Linux na versão 5.4.1 . Instalar o Swift é fácil usando Xcode, o fluxo de trabalho gratuito da Apple para desktop e desenvolvimento iOS nativo.
Você pode baixar o Xcode na App Store dentro do macOS ou no site oficial do Swift . Se você estiver usando Windows ou Linux, baixe e instale o Swift em seu site oficial.
Se não quiser instalar o Swift em seu computador, você pode tentar um Playground para Swift online .
Abra um Xcode Playground
Depois de instalar o Swift em seu computador, abra um Playground usando Xcode, onde você pode começar a escrever seu código.
Tipos de dados
Precisamos saber quais tipos de dados são suportados no Swift para entender o que podemos realizar. Usaremos os seguintes seis tipos de dados:
Tipo de dados | Exemplo | Representa | Objetivo |
---|---|---|---|
Personagem | s , w |
Um caractere Unicode de 16 bits | S edição única de caracteres |
String | linguagem rápida |
Dados de texto | S avar, atualizar, modificar um texto/mensagem |
Int | 5 , -5 |
Um número inteiro | Representa qualquer número inteiro |
Flutuante | 5.5 , -5.5 |
número de ponto flutuante de 32 bits | Representa um número de ponto flutuante de 32 bits |
Duplo | 5.5 , -5.5 |
número de ponto flutuante de 64 bits | Representa um número de ponto flutuante de 64 bits |
Bool | true , false |
Representa estados (verdadeiro/falso) | Fornece valor verdadeiro/falso para usar em nosso programa |
Variáveis
Escrever um programa requer muitos dados. As variáveis fornecem uma maneira de rotular os dados, facilitando sua modificação e referência.
Estrutura variável
Usaremos a seguinte estrutura para formatar uma variável: Keyword variableName: dataType
. Você pode ver a estrutura usada no bloco de código abaixo:
var name: String
Quando definimos uma variável usando a estrutura acima, não colocamos nenhum dado na variável inicialmente. Vamos adicionar dados na variável para modificá-la de um null
, que representa um valor vazio na programação, para uma string
:
var name: String="nerdjfpb"
Posteriormente, podemos consultar o código acima conforme necessário para acessar os dados. Por exemplo, print (name)
mostrará nerdjfpb
no console do Playground. Você pode pensar em imprimir algo como exibir o resultado. Podemos ver qual valor está dentro do nome.
Podemos alterar o valor da variável facilmente:
name="Nerd Jfpb"
Ao escrever em Swift, não precisamos especificar o tipo de dados quando começamos com seu valor. Por exemplo, no código a seguir, Swift entende que o nome é uma string:
var name="nerdjfpb"
Se escrevermos o bloco de código abaixo, receberemos um erro. Como o Swift é uma linguagem digitada, não podemos alterar o tipo de dados de uma variável:
name=5
Imagine que você deseja fazer referência a uma variável por meio de sua programação, mas não deseja alterar seu valor. O Swift fornece um método específico para referenciar variáveis.
Variáveis de referência
Para fazer referência a uma variável, usaremos a seguinte estrutura: Keyword (let) variableName dataType=Value
, que pode ser visto no exemplo abaixo:
let ownerName="Nerdjfpb"
Só podemos definir o valor de ownerName
uma vez e não podemos alterá-lo. O valor permanecerá constante durante todo o programa.
Operadores
Para usar o Swift, precisamos entender estes operadores básicos :
Operadores de comparação
Operador | Exemplo | Explicação |
---|---|---|
== (Igual para) |
variable1==variable2 |
Retorna s true se as variáveis forem iguais |
!= (Não igual a) |
variável1!=variável2 |
Retorno s verdadeiro se as variáveis não forem iguais |
> (Maior que) |
variable1> variable2 |
Retorna s true se a variável1 for maior que a variável 2 |
>= (Maior que ou igual a) |
variable1>=variable2 |
Retorna s verdadeiro se a variável1 for maior que ou variável igual 2 |
< (Menos que) |
variable1 |
Retorna verdadeiro se a variável1 for menor que a variável 2 |
<= (Menos que ou igual a) |
variable1 <=variable2 |
Retorna verdadeiro se a variável1 for menor ou igual à variável 2 |
Operadores aritméticos
Operador | Exemplo | Explicação |
---|---|---|
+ (Adição) |
print (variable1 + variable2) |
imprima a adição da variável1 e variável2 |
- (Subtração) |
print (variable1-variable2) |
imprima a subtração de variável2 da variável1 |
* (Multiplicação) |
print (variable1 * variable2) |
imprima a multiplicação de variável1 e variável2 |
/ (Divisão) |
print (variable1/variable2) |
imprima a divisão de variável1 por variável2 |
% ( Restante) |
print (variable1% variable2) |
imprima o lembrete ainder da variável1 e variável2 |
Fluxo de controle e condicionais
Programar envolve tomar decisões complexas. Precisamos aprender a tomar decisões em Swift. Suponha que estejamos tentando determinar se um número é par ou ímpar. Para fazer isso, precisamos verificar se um determinado número pode ser dividido por dois sem deixar resto.
Em Swift, usamos %
para encontrar o resto e determinar se é ou não igual a zero. Digamos que temos um var num=15
. Vamos escrever condições para descobrir se o número é par ou ímpar.
Estrutura restante
Para encontrar o restante, siga a estrutura abaixo:
Palavra-chave (condições) { //código para execução aqui }
A palavra-chave que usaremos é if
. A condição será num% 2==0
, e o código para execução será a leitura de impressão O número fornecido é um número par
:
var num=5 if (num% 2==0) { imprimir ("dado número é um número par") }
Digamos que também desejamos informar ao usuário se o número não for par. Essa parte é bem fácil! Para cada instrução if
, podemos escrever uma instrução else
.
If/else
estrutura da instrução
Nosso código usará a estrutura abaixo:
if (condições) { //Execute o código dentro do bloco if } senão { //Execute o código dentro do bloco else }
Você verá a estrutura e as condições no bloco de código abaixo:
var num=5 if (num% 2==0) { imprimir ("O número dado é um número par") } senão { imprimir ("Um número dado é um número ímpar") }
Devido ao valor num
, a instrução if
funcionará ou a instrução else
funcionará. Você só pode satisfazer um de cada vez.
Vamos estender o problema. Suponha que desejamos ignorar todos os números negativos. Executaremos uma instrução if/else
que exclui números abaixo de zero.
Siga a estrutura abaixo para resolver o problema:
if (condições) { //Execute o código dentro do bloco if } mais se (condições) { //Execute o código dentro de else if block } senão { //Execute o código dentro do bloco else } if (num <0) { imprimir ("dado número é um número negativo") } else if (num% 2==0) { imprimir ("dado número é um número par") } senão { imprimir ("Um número dado é um número ímpar") }
Muito fácil, certo?
Agora, suponha que você queira mostrar se um número é positivo ou negativo e se o número é par ou ímpar:
var num=3 if (num==0) { print ("O número dado é zero") } else if (num <0) { imprimir ("dado número é um número negativo") } senão { imprimir ("dado número é um número positivo") } if (num% 2==0) { imprimir ("O número dado é um número par") } senão { imprimir ("Um número dado é um número ímpar") }
Você receberá a seguinte saída:
O número dado é um número positivo O número dado é ímpar
Loops
Imagine que você queira escrever todos os números de zero a 100. Deve ser bastante fácil, certo? E se eu lhe dissesse para escrever todos os números de zero a 1.000? Ou zero a 10.000? Seria difícil, enfadonho e demorado.
Nessa situação, a programação de computador vem ao resgate. Você pode programar seu computador para executar uma determinada tarefa por um determinado período de tempo e pode dizer a ele o que fazer. Pediremos ao computador para escrever de zero a 100 no Swift Playground usando um loop.
Em um loop, podemos fornecer tarefas sequenciais e condições de interrupção. Existem vários loops disponíveis em Swift , incluindo for-in
, while
e repeat-while
.
Cobriremos cada loop e realizaremos a mesma tarefa usando cada um. Suponha que precisemos contar de zero a 100.
estrutura for-in
Use o seguinte layout para construir um loop for-in
:
palavra-chave counterVariable em lowerLimit.. upperLimit { //código para execução }
Usaremos for
como palavra-chave e índice de contagem
como counterVariable
. O lowerLimit
é o menor número no qual começamos a contagem, e o upperLimit
é o maior número no qual paramos de contar:
para contagem em 1... 100 { print (count)//para impressão }
Agora, vamos realizar a mesma tarefa com o loop while
.
while
estrutura de loop
Configure seu loop while
seguindo a ordem abaixo:
condição de palavra-chave { //código para execução }
A palavra-chave que usaremos é while
, e a condição que especificaremos é para interromper o loop. Em nosso caso, paramos quando a contagem é igual a 100.
var count=1 enquanto (contagem <=100) { print (count)//para impressão contagem=contagem + 1//para valor de incremento }
Se não incrementarmos o valor usando count=count + 1
, o loop while
continuará indefinidamente, eventualmente travando o programa. Um computador lento pode ser difícil de reiniciar, então certifique-se de ler o código novamente antes de executar o loop while
para certificar-se de incluir um ponto de parada.
Estrutura
repetir enquanto
No loop while
acima, verificamos a condição primeiro e, em seguida, executamos o código interno. Considere o mesmo exemplo de código visto acima com 101
como entrada:
var count=101 enquanto (contagem <=100) { print (count)//para impressão contagem=contagem + 1//para valor de incremento }
Nesse caso, não receberemos saída porque a condição não foi atendida.
Vamos tentar nosso exemplo novamente usando repetir enquanto
. Um loop repeat-while
primeiro executa a tarefa e, em seguida, verifica as condições, operando essencialmente na ordem inversa do loop while
:
var count=101 repetir { imprimir (contar) contagem=contagem + 1 } enquanto (contagem <=100)
A saída do código repetir enquanto
é 101
.
Felizmente, agora você está familiarizado com os loops Swift!
Aqui está uma questão para você resolver: encontre todos os números pares entre um e 100 e imprima-os no console. Seu código concluído será semelhante ao bloco de código abaixo:
para contagem em 1... 100 { if (contar% 2==0) { imprimir (contar) } }
Tente realizar a mesma tarefa usando um while
e repeat-while
sozinho.
Funções
Para entender as funções, revisitaremos os loops. Os loops nos permitem escrever programas que podem repetir a mesma tarefa continuamente.
Uma função nos permite reutilizar um pedaço de código quando necessário. Podemos escrever uma instrução if/else
ou um loop dentro de uma função. Geralmente, uma função pega alguns parâmetros e retorna um resultado usando esses parâmetros.
Vejamos um exemplo. Usando uma função, recebemos o resultado da soma de dois números e podemos alterar os valores de entrada o quanto quisermos. Observe que uma função só funciona quando você a chama e pode chamá-la com a frequência necessária.
Estrutura da função
Usaremos a seguinte estrutura para completar este exemplo:
palavra-chave functionName (parâmetros: tipo de parâmetros) → returnType { //bloco de código aqui }
Abaixo, você encontrará o código completo com a palavra-chave, nome da função, parâmetros e tipo de retorno:
func sumOfTwo (num1: Int, num2: Int)-> Int { retornar num1 + num2 } var total=sumOfTwo (num1: 10, num2: 20) imprimir (total)
O bloco de código abaixo demonstra a flexibilidade das funções. Observe que cada linha inclui diferentes valores numéricos:
func sumOfTwo (num1: Int, num2: Int)-> Int { retornar num1 + num2 } var firstFunc=sumOfTwo (num1: 10, num2: 20) imprimir (firstFunc) var secondFunc=sumOfTwo (num1: 5, num2: 7) imprimir (secondFunc) var thirdFunc=sumOfTwo (num1: 12, num2: 51) imprimir (thirdFunc)
Podemos chamar a função repetidamente com novos valores, recebendo novos resultados a cada vez!
No entanto, podemos simplificar muito nosso código. Se estivermos apenas imprimindo o resultado, podemos melhorar o código encurtando-o:
func sumOfTwo (num1: Int, num2: Int)-> Void { imprimir (num1 + num2) } sumOfTwo (num1: 10, num2: 20) sumOfTwo (num1: 5, num2: 7) sumOfTwo (num1: 12, num2: 51)
O código usado aqui nos dará o mesmo resultado que o código escrito acima. Podemos imprimir diretamente da função porque não estamos usando esse valor em nenhum outro lugar.
Você deve ter notado que colocamos Void
em vez de Int
no lugar de returnType
. Void
significa que não estamos retornando nada e apenas realizando a tarefa interna. Você pode fazer o mesmo executando o seguinte código:
func emptyReturn () {} função emptyReturn ()-> Void {} função emptyReturn ()-> () {}
Você também pode escrever uma função sem nenhum parâmetro:
func goodMorning () { imprimir ("Bom dia") } bom Dia()
Veja se escrevemos um log sem passar nenhum valor para dentro.
Vamos usar o que aprendemos e tentar um exemplo difícil! Suponha que estejamos construindo uma mini calculadora usando uma função que pode somar dois números e subtrair dois números:
func sumOfTwo (num1: Int, num2: Int)-> Int { retornar num1 + num2 } função substractOfTwo (num1: Int, num2: Int)-> Int { retornar num1-num2 } func miniCalculator (num1: Int, num2: Int, work: String) { if (work=="+") { imprimir (sumOfTwo (num1: num1, num2: num2)) } else if (work=="-") { imprimir (substractOfTwo (num1: num1, num2: num2)) } senão { print ("Esta função de operador ainda não está disponível.") } } miniCalculador (num1: 12, num2: 21, trabalho:"+") miniCalculador (num1: 12, num2: 5, trabalho:"-")
A tarefa final é imprimir todos os números pares e ímpares em uma determinada matriz usando a seguinte função:
func oddOrEven (lowerLimit: Int, upperLimit: Int) { para índice em lowerLimit... upperLimit { if (índice% 2==0) { print ("\ (índice) é um número par") } senão { print ("\ (índice) é um número ímpar") } } } oddOrEven (lowerLimit: 1, upperLimit: 100)
Existem muitas maneiras diferentes de escrever o código acima, mas optei por mantê-lo simples.
Conclusão
Agora, você deve ter um entendimento claro de como funciona a linguagem de programação Swift. Se você entender o básico corretamente, estará pronto para escrever um código mais complicado em Swift.
Lembre-se de que esta é uma maratona, não uma corrida de velocidade. Melhorar suas habilidades de codificação requer que você pratique diariamente. Certifique-se de verificar os documentos oficiais do Swift para saber mais sobre o Swift.
A postagem Dominando os fundamentos do Swift apareceu primeiro em LogRocket Blog .