Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Valores Retornados pelas Funções | Funções
Introdução ao Golang

bookValores Retornados pelas Funções

Ser capaz de passar dados para funções é valioso, mas é igualmente vantajoso recuperar dados delas. É aqui que a palavra-chave return se torna essencial.

A palavra-chave return permite que funções enviem dados de volta ao ponto do código onde foram invocadas. Aqui está a sintaxe para uma função com uma instrução return:

func nomeDaFuncao(param_1 tipodedado, param_2 tipodedado, ...) tipodedadoretornado {
      // Código
     
      return dado_a_ser_retornado
}

O dado_a_ser_retornado é onde especificamos uma expressão ou um valor. O tipodedadoretornado representa o tipo de dado antecipado para o valor que será retornado. Isso ficará mais claro através de um exemplo.

O programa a seguir ilustra a implementação de uma instrução return por meio de uma função que calcula e retorna tanto a soma quanto o produto de dois argumentos inteiros dados:

index.go

index.go

copy
1234567891011121314
package main import "fmt" func myFunc(value_1 int, value_2 int) int { var sum int = value_1 + value_2 var prod int = value_1 * value_2 var result int = sum + prod return result } func main() { fmt.Println(myFunc(5, 7)) }

Observe que, dentro da função Println, temos myFunc(5, 7), e o programa acima gera a saída 47, que resulta dos cálculos realizados pela função myFunc(). Isso demonstra que a instrução return transmite dados específicos de volta ao local onde a função foi invocada. Além disso, podemos armazenar os dados retornados em uma variável:

index.go

index.go

copy
12
var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'

Nota

Uma função não requer parâmetros para incluir uma instrução return.

Uma função não pode conter nenhum código após uma instrução de retorno, e tipicamente, Go não permite múltiplas instruções de retorno:

index.go

index.go

copy
1234567891011
// Function exits after the first return statement it encounters func exampleOne() int { return 1 return 2 // Will be ignored } // There cannot be any code after a return statement func exampleTwo() int { return 1 fmt.Println() // Error here }

No entanto, é possível utilizar a instrução return dentro de estruturas condicionais para retornar valores de forma seletiva:

index.go

index.go

copy
123456789101112131415
package main import "fmt" func myFunc() string { if(1 > 2) { return "1 is greater than 2" } else { return "2 is greater than 1" } } func main() { fmt.Println(myFunc()) }
question mark

Qual será o resultado do seguinte programa?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 1.96

bookValores Retornados pelas Funções

Deslize para mostrar o menu

Ser capaz de passar dados para funções é valioso, mas é igualmente vantajoso recuperar dados delas. É aqui que a palavra-chave return se torna essencial.

A palavra-chave return permite que funções enviem dados de volta ao ponto do código onde foram invocadas. Aqui está a sintaxe para uma função com uma instrução return:

func nomeDaFuncao(param_1 tipodedado, param_2 tipodedado, ...) tipodedadoretornado {
      // Código
     
      return dado_a_ser_retornado
}

O dado_a_ser_retornado é onde especificamos uma expressão ou um valor. O tipodedadoretornado representa o tipo de dado antecipado para o valor que será retornado. Isso ficará mais claro através de um exemplo.

O programa a seguir ilustra a implementação de uma instrução return por meio de uma função que calcula e retorna tanto a soma quanto o produto de dois argumentos inteiros dados:

index.go

index.go

copy
1234567891011121314
package main import "fmt" func myFunc(value_1 int, value_2 int) int { var sum int = value_1 + value_2 var prod int = value_1 * value_2 var result int = sum + prod return result } func main() { fmt.Println(myFunc(5, 7)) }

Observe que, dentro da função Println, temos myFunc(5, 7), e o programa acima gera a saída 47, que resulta dos cálculos realizados pela função myFunc(). Isso demonstra que a instrução return transmite dados específicos de volta ao local onde a função foi invocada. Além disso, podemos armazenar os dados retornados em uma variável:

index.go

index.go

copy
12
var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'

Nota

Uma função não requer parâmetros para incluir uma instrução return.

Uma função não pode conter nenhum código após uma instrução de retorno, e tipicamente, Go não permite múltiplas instruções de retorno:

index.go

index.go

copy
1234567891011
// Function exits after the first return statement it encounters func exampleOne() int { return 1 return 2 // Will be ignored } // There cannot be any code after a return statement func exampleTwo() int { return 1 fmt.Println() // Error here }

No entanto, é possível utilizar a instrução return dentro de estruturas condicionais para retornar valores de forma seletiva:

index.go

index.go

copy
123456789101112131415
package main import "fmt" func myFunc() string { if(1 > 2) { return "1 is greater than 2" } else { return "2 is greater than 1" } } func main() { fmt.Println(myFunc()) }
question mark

Qual será o resultado do seguinte programa?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
some-alt