Passando Dados para as Funções
Funções não são muito úteis se não pudermos acessar dados externos a elas devido às diferenças de escopo. No entanto, é possível passar dados para funções utilizando 'parâmetros'.
Parâmetros definem um formato para os dados que uma função espera receber quando é chamada ou executada.
Nos capítulos anteriores, analisamos funções simples sem parâmetros. Contudo, é possível declarar uma função com parâmetros utilizando a seguinte sintaxe:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Cada parâmetro pode ter um nome distinto seguido pelo seu tipo de dado. Os parâmetros são separados por vírgulas. Os parâmetros seguem as mesmas convenções de nomenclatura que as variáveis.
Aqui está um exemplo que ilustra o uso de funções com parâmetros:
index.go
12345678910111213141516171819202122package main import "fmt" func outThreeTimes(message string) { fmt.Println(message) fmt.Println(message) fmt.Println(message) } func sum(value1 int, value2 int) { fmt.Println("Sum:", value1 + value2) } func product(val1 int, val2 int, val3 int) { fmt.Println("Product:", val1 * val2 * val3) } func main() { outThreeTimes("Hello World") sum(17, 25) product(4, 7, 9) }
No programa acima, é possível observar funções com um, dois e três parâmetros. É totalmente viável criar funções com quantos parâmetros forem necessários.
Os valores podem ser fornecidos a essas funções diretamente ou por meio de variáveis. Por exemplo, na instrução a seguir, fornecemos diretamente o valor da string onde se espera um parâmetro:
index.go
1outThreeTimes("Hello World")
Alternativamente, é possível armazenar o valor em uma variável do tipo string e, em seguida, passar essa variável para a função:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
Na declaração abaixo, observa-se uma combinação de ambas as abordagens:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Você pode escolher o método que melhor se adequa às suas necessidades.
Nota
Ao passar variáveis ou valores de dados para uma função, eles são chamados de argumentos. No caso de
product(a, b, 9), os termosa,be9são argumentos. Por outro lado, na declaração da função,val1 int,val2 inteval3 intsão conhecidos como parâmetros.
É importante passar os dados para as funções na ordem definida pelos parâmetros. Por exemplo, em uma função func myFunc(an int, b string), o primeiro argumento deve ser um inteiro e o segundo deve ser uma string; qualquer outra ordem resultará em erros.
Dentro da função, os parâmetros atuam efetivamente como variáveis que assumem os valores dos argumentos passados. Portanto, declarar variáveis com o mesmo nome de qualquer parâmetro da função dentro do corpo da função resultará em erros.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain the difference between parameters and arguments again?
Why does the order of arguments matter when calling a function?
What happens if I use the same name for a parameter and a variable inside the function?
Awesome!
Completion rate improved to 1.96
Passando Dados para as Funções
Deslize para mostrar o menu
Funções não são muito úteis se não pudermos acessar dados externos a elas devido às diferenças de escopo. No entanto, é possível passar dados para funções utilizando 'parâmetros'.
Parâmetros definem um formato para os dados que uma função espera receber quando é chamada ou executada.
Nos capítulos anteriores, analisamos funções simples sem parâmetros. Contudo, é possível declarar uma função com parâmetros utilizando a seguinte sintaxe:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Cada parâmetro pode ter um nome distinto seguido pelo seu tipo de dado. Os parâmetros são separados por vírgulas. Os parâmetros seguem as mesmas convenções de nomenclatura que as variáveis.
Aqui está um exemplo que ilustra o uso de funções com parâmetros:
index.go
12345678910111213141516171819202122package main import "fmt" func outThreeTimes(message string) { fmt.Println(message) fmt.Println(message) fmt.Println(message) } func sum(value1 int, value2 int) { fmt.Println("Sum:", value1 + value2) } func product(val1 int, val2 int, val3 int) { fmt.Println("Product:", val1 * val2 * val3) } func main() { outThreeTimes("Hello World") sum(17, 25) product(4, 7, 9) }
No programa acima, é possível observar funções com um, dois e três parâmetros. É totalmente viável criar funções com quantos parâmetros forem necessários.
Os valores podem ser fornecidos a essas funções diretamente ou por meio de variáveis. Por exemplo, na instrução a seguir, fornecemos diretamente o valor da string onde se espera um parâmetro:
index.go
1outThreeTimes("Hello World")
Alternativamente, é possível armazenar o valor em uma variável do tipo string e, em seguida, passar essa variável para a função:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
Na declaração abaixo, observa-se uma combinação de ambas as abordagens:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Você pode escolher o método que melhor se adequa às suas necessidades.
Nota
Ao passar variáveis ou valores de dados para uma função, eles são chamados de argumentos. No caso de
product(a, b, 9), os termosa,be9são argumentos. Por outro lado, na declaração da função,val1 int,val2 inteval3 intsão conhecidos como parâmetros.
É importante passar os dados para as funções na ordem definida pelos parâmetros. Por exemplo, em uma função func myFunc(an int, b string), o primeiro argumento deve ser um inteiro e o segundo deve ser uma string; qualquer outra ordem resultará em erros.
Dentro da função, os parâmetros atuam efetivamente como variáveis que assumem os valores dos argumentos passados. Portanto, declarar variáveis com o mesmo nome de qualquer parâmetro da função dentro do corpo da função resultará em erros.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Obrigado pelo seu feedback!