1
resposta

Dúvidas sobre a aula de funções

func soma(_ numero1: Int, _ numero2: Int) -> Int{
    var resultado = numero1 + numero2
    return resultado
}
var resultado = soma(5, 3)
print(resultado)

Uma reflexão preciso saber se entendi certo ou estou no caminho errado! kkk me corriga por favor:

Quando foi escrito o return resultado significa que está chamando a váriavel que está for do escopo var resultado = (soma 5,3)??

1 resposta

Olá Alex, tudo certo?

Você está quase certo! Vou explicar melhor o trecho de código que você escreveu.

Dentro da função, você cria uma variável local chamada resultado, que armazena a soma dos dois números passados como argumentos. Em seguida, você usa a instrução return para retornar o valor de resultado como resultado da função.

Fora da função, você chama a função soma passando os valores 5 e 3 como argumentos. O valor retornado pela função é atribuído à variável resultado que está fora do escopo da função, ou seja, quando a função soma é chamada, ela cria um bloco de código que em curtas palavras, cria suas próprias variáveis que não se relacionam com quem está fora da função, então, quando a função acaba e o valor é retornado, o que resta para o código é uma referência do resultado da função (que é o que você está retornando, o valor 8).

func soma(_ numero1: Int, _ numero2: Int) -> Int{
    var resultado = numero1 + numero2
    return resultado
    // ------> AQUI A VARIÁVEL RESULTADO DEIXA DE "EXISTIR" O QUE RESTA É UMA REFERÊNCIA AO VALOR QUE FOI COMPUTADO<------
}
var resultado = soma(5, 3) // <------ RECEBE ESSA REFERÊNCIA
print(resultado)

Então, o return resultado na função soma não está chamando a variável resultado fora do escopo. Em vez disso, está retornando o valor contido nessa variável como resultado da função.

Qualquer dúvida, estarei à disposição :)