Swift - Iniciando
Tags: swift, ios, mobile, apple
Published: 2020-10-02 11:17:46


## Introdução

No início de setembro tive a oportunidade de ingressar a um projeto de desenvolvimento iOS, com isso, obviamente a necessidade de entender como o Swift funciona surgiu.
Preparei alguma de minhas anotações para facilitar com que as pessoas tenham uma curva de aprendizado menor para tal tecnologia, principalmente, os assim como eu, tiveram experiências anteriores com o javascript.


## Variáveis e Constantes

Variáveis e constantes no swift possuem formas mais léxicas(do inglês) para serem declaradas, diferentemente de outras linguagens, não se usa const para as constantes, mas sim "let"(tornando um tanto confuso caso você possua um background de javascript assim como eu)

Sendo assim, as declarações são feitas da seguinte forma

```swift
let thisWillNeverChange = "Hello"
var thisWillChange = "World"
```

## Funções

```swift
func getText(_ index: Int) -> String{}

func getText2(at index: Int) -> String{}
```

## Type Inference

Swift é uma linguagem de programação fortemente tipada, porém também com uma inferência de tipos muito agressiva, sendo assim, não é necessário, por exemplo, declarar o tipo de uma variável caso a mesma tenha sido iniciada.

Porém algo também muito interessante das declarações de estrutura de dados/tipos no swift é a opção de utilizarmos o método construtor do tipo como um valor possível, ficou um pouco confuso porem irei explicar

```swift
/* 
	Geralmente, em linguagens aonde não existe a inferência de tipos
	seria necessário definirmos o tipo e um valor inicial a variável, por exemplo
*/

var name: String = "Caio"

/* 
	Porém no swift, ao definirmos um valor inicial a variável, não precisamos definir 
	seu tipo, pois o mesmo já infere para nós, ficando da seguinte forma
*/

var lastName = "Caio"

/*
	Uma outra regra do swift é que todos os atributos de uma classe/objeto precisam
	ser iniciados, porém, como fazer isso sem que seja necessário, por exemplo, 
	inicia-las através de um método construtor?
	A resposta é bem simples, utilizando o método construtor dos tipos primitivos ou
	das inúmeras estruturas de dados presentes na linguagem, por exemplo:
*/

var company = String()
var contactList = Array<String>()

```

## Arrays

Array é uma das estruturas mais comuns e amplamente utilizadas por todas as linguagens, e o Swift também é uma delas, no caso, o mais interessante referente a tal assunto dentro do Swift, é a forma de declaração do mesmo:

```swift
// Um array possui diversas formas de ser declarados, as duas mais utilizadas são

var list1: Array<String> // Definindo o tipo dos itens que o Array ira possuir

// Ou

var list2: [String] // Nesse caso, encapsulando o tipo dos itens de dentro do array

/*
	Como descrito anteriormente, caso queiram, é possível também utilizar o método
	construtor do mesmo para iniciarmos as variaveis
*/

var list3 = Array<String>()

// Ou

var list4 = [String]()

// Ou também inferindo o tipo automaticamente

var list5 = ["Hello", "World"]
```

## Dictonary

Dictonary são como objetos no javascript, estrutura de dados compostas por chave valor, no caso, podemos declarar um dicionário informando os tipos da chave e valor da seguinte forma:

```swift
let myDictonary = Dictonary<String, String>()

// Ou também

let myDictonary2 = [String:String]()
```


## Conclusão

Swift é uma linguagem muito robusta e rígida, bem diferente do javascript que nos permite criar as coisas sem muitos padrões. Nos próximos posts falarei um pouco mais sobre outras estruturas presentes no swift.