Passando Arrays para Funções
Um recurso valioso é a capacidade de passar arrays para funções, permitindo o uso desses arrays em outros escopos, especialmente quando são declarados localmente.
A sintaxe geral para um argumento de array em uma função é a seguinte:
argName [expectedArraySize] dataType
A implementação disso em uma função seria semelhante ao exemplo abaixo:
index.go
123func myFunc(arr [5] int) { // code here }
O exemplo a seguir demonstra como passar um array para uma função e utilizá-lo:
index.go
123456789101112131415package main import "fmt" func sumOfAll(arr [10] int) int { total := 0 for i := 0; i < 10; i++ { total += arr[i] } return total } func main() { var numbers = [10] int { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 } fmt.Printf("Sum: %d", sumOfAll(numbers)) }
Em Go (Golang), arrays são sempre passados por valor para as funções. Isso significa que, ao passar um array para uma função, uma cópia local do array original é criada dentro da função. Consequentemente, quaisquer modificações feitas no array dentro da função não afetam o array original, pois os dados acessados dentro da função são uma cópia do array original.
O programa a seguir ilustra que alterações feitas no array dentro da função não afetam o array original:
index.go
12345678910111213package main import "fmt" func myFunc(nums [3] int) { nums[1] = 10 } func main() { var values = [3] int {1, 2, 3} fmt.Println("Before:", values) myFunc(values) fmt.Println("After: ", values) }
Nota
Em contraste com a passagem por valor, existe o conceito de passagem por referência, onde uma referência ao array ou variável é passada para a função. Consequentemente, modificar o valor dentro da função também modifica a fonte. Em algumas linguagens de programação, arrays são passados por referência por padrão.
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 passing by value and passing by reference in more detail?
Are there ways to modify the original array inside a function in Go?
Can you show an example of passing an array by reference in Go?
Awesome!
Completion rate improved to 1.96
Passando Arrays para Funções
Deslize para mostrar o menu
Um recurso valioso é a capacidade de passar arrays para funções, permitindo o uso desses arrays em outros escopos, especialmente quando são declarados localmente.
A sintaxe geral para um argumento de array em uma função é a seguinte:
argName [expectedArraySize] dataType
A implementação disso em uma função seria semelhante ao exemplo abaixo:
index.go
123func myFunc(arr [5] int) { // code here }
O exemplo a seguir demonstra como passar um array para uma função e utilizá-lo:
index.go
123456789101112131415package main import "fmt" func sumOfAll(arr [10] int) int { total := 0 for i := 0; i < 10; i++ { total += arr[i] } return total } func main() { var numbers = [10] int { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 } fmt.Printf("Sum: %d", sumOfAll(numbers)) }
Em Go (Golang), arrays são sempre passados por valor para as funções. Isso significa que, ao passar um array para uma função, uma cópia local do array original é criada dentro da função. Consequentemente, quaisquer modificações feitas no array dentro da função não afetam o array original, pois os dados acessados dentro da função são uma cópia do array original.
O programa a seguir ilustra que alterações feitas no array dentro da função não afetam o array original:
index.go
12345678910111213package main import "fmt" func myFunc(nums [3] int) { nums[1] = 10 } func main() { var values = [3] int {1, 2, 3} fmt.Println("Before:", values) myFunc(values) fmt.Println("After: ", values) }
Nota
Em contraste com a passagem por valor, existe o conceito de passagem por referência, onde uma referência ao array ou variável é passada para a função. Consequentemente, modificar o valor dentro da função também modifica a fonte. Em algumas linguagens de programação, arrays são passados por referência por padrão.
Obrigado pelo seu feedback!