Descondificando CC

Funções em Swift

August 30, 2019

Swift
Iniciante
NOTA: este é um guia básico de como criar funções em Swift :)

Uma função é nada mais do que um conjunto de instruções à serem executados na hora da chamada da mesma.

As funções em Swift são declaradas usando a palavra-chave func seguido do nome da função e do seu bloco.

Exemplo:

func olaMundo() {
  print("Ola, Mundo!")
}

O bloco(corpo) de uma função é todo o espaço entre as chavetas{}, dentro delas definimos as instruções à serem executadas.

olaMundo() // Ola, Mundo

Para invocarmos uma função temos de usar o nome dado na hora da definição da mesma seguido de parênteses como mostra o a linha acima.

Passando parâmetros à funções

Parâmetros rótulados

Funções em Swift aceitam parâmetros com rótulos obrigatórios ou opcionais. Rótulos(label) são nomes que damos aos nossos parâmetro, quando são obrigatórios, devemos passar eles à quando da chamada da nossa função.

func olaMundo(nome: String) {
  print("Hello", nome)
}

hello(nome: "Descondificando CC") // Hello Descondificando CC

Modificamos a nossa função olaMundo para que agora receba um parâmetro chamado nome que será um valor do tipo String, o nome do parâmetro é também o nome do rótulo, e neste caso é obrigatório. Ao chamarmos a nossa função, temos de passar o valor para parâmetro e o seu respectivo rótulo.

Parâmetros não rótulados

Para transformar o rótulo de um parâmetro de obrigatório à opcional, usamos um _(underscore) antes do nome do parâmetro.

func olaMundo(_ nome: String) {
  print("Hello", nome)
}

hello("Descondificando CC") // Hello Descondificando CC
Parâmetros com valores padrão

Ainda usando a nossa função olaMundo, ao invocarmos-lhe sem o valor esperado, a função não será executada. Para prevenirmos este tipo de erros, podemos usar os parâmetros com valores padrão.

func olaMundo(_ nome: String = "Ciências da Computação") {
  print("Hello", nome)
}

hello() // Hello Ciências da Computação

Retornando valores

Funções podem retornar valores, valores estes que em seguida podem ser guardados em uma varíavel para usos posteriores, para isso, usamos a palavra-chave return.

Ao retornarmos valores em funções, devemos definir que tipo de valor ela retornará.

func dobro(_ num: Int) -> Int {
  return num * num
}

let resultado = dobro(2)
print(resultado) // 4

A função dobro recebe um parâmetro com uma label opcional do tipo Int(inteiro) e retorna um valor do mesmo tipo que o parâmetro que ela recebe, em seguida retornamos o valor da operação num * num.

O tipo de retorno de uma função é definido pelo -> seguido do tipo de dados, por exemplo:

func greetings(_ name: String) -> String {
  return "Hello, \(name)"
}

print(greetings("Noémia")) // Hello, Noémia

Na função acima, a gente definiu uma função que recebe um parâmetro do tipo String e que retorna um resultado do tipo String também!