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

bookValores de Retorno de Funções

A capacidade de passar dados para funções é valiosa, mas é igualmente vantajoso recuperar dados das funções. É nesse contexto 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. Veja a sintaxe para uma função com uma instrução return:

func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
      // Code
     
      return data_to_be_returned
}

O data_to_be_returned é onde especificamos uma expressão ou um valor. O returned_datatype representa o tipo de dado esperado para o valor que será retornado. Isso ficará mais claro por meio 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 fornecidos:

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 produz 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 chamada. Além disso, é possível 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 exige parâmetros para incluir uma instrução return.

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

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 empregar a instrução return dentro de estruturas condicionais para retornar valores seletivamente:

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á a saída 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 de Retorno de Funções

Deslize para mostrar o menu

A capacidade de passar dados para funções é valiosa, mas é igualmente vantajoso recuperar dados das funções. É nesse contexto 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. Veja a sintaxe para uma função com uma instrução return:

func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
      // Code
     
      return data_to_be_returned
}

O data_to_be_returned é onde especificamos uma expressão ou um valor. O returned_datatype representa o tipo de dado esperado para o valor que será retornado. Isso ficará mais claro por meio 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 fornecidos:

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 produz 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 chamada. Além disso, é possível 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 exige parâmetros para incluir uma instrução return.

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

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 empregar a instrução return dentro de estruturas condicionais para retornar valores seletivamente:

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á a saída 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