- Autor

- Nome
- Nelson Silva
- Social
Introdução
Os argumentos são os pilares das funções, permitindo que valores ou referências sejam passados entre funções, métodos e até mesmo pacotes em Go. São essenciais para modularizar o código e criar aplicações reutilizáveis e eficientes.
- Passagem por Valor vs. Passagem por Referência
- Argumentos Variádicos: Flexibilidade nas Funções
- Structs como "Argumentos Nomeados"
- Porque é que os Argumentos são Cruciais em Go?
Passagem por Valor vs. Passagem por Referência
Em linguagens de programação, a forma como os dados são passados para funções pode variar. Em Go, isso não é excepção.
Passagem por Valor
Ao passar um argumento por valor, está efectivamente a dar à função uma cópia do valor original. Esta cópia é armazenada num novo local de memória.
func modificarValor(x int) {
x = 10
}
func main() {
y := 5
modificarValor(y)
fmt.Println(y) // Imprime 5, porque uma cópia de y foi modificada, não o próprio y
}
Passagem por Referência
Em contraste, ao passar por referência, dá à função um ponteiro para o local de memória onde o valor original está armazenado, permitindo que a função modifique esse valor diretamente.
func modificarReferencia(x *int) {
*x = 10
}
func main() {
y := 5
modificarReferencia(&y)
fmt.Println(y) // Imprime 10, porque a função modificou o valor original de y
}
Argumentos Variádicos: Flexibilidade nas Funções
Go suporta argumentos variádicos, o que significa que pode passar um número indefinido de valores para uma função. Estes são especialmente úteis quando não se sabe quantos argumentos podem ser necessários.
func imprimirNomes(nomes ...string) {
for _, nome := range nomes {
fmt.Println(nome)
}
}
func main() {
imprimirNomes("Ana", "João", "Miguel")
}
Structs como "Argumentos Nomeados"
Em algumas linguagens, é possível passar argumentos por nome. Go não tem esta funcionalidade de forma nativa, mas pode simular argumentos nomeados utilizando structs. Isto é útil para tornar o código mais legível e autoexplicativo.
type Config struct {
Nome string
Idade int
}
func configurarUtilizador(config Config) {
fmt.Printf("Nome: %s, Idade: %d\n", config.Nome, config.Idade)
}
Porque é que os Argumentos são Cruciais em Go?
Os argumentos são a espinha dorsal das funções em Go. Permitem modularidade, reutilização e escalabilidade. Ao compreender profundamente como os argumentos funcionam, é possível escrever código mais eficiente, evitando armadilhas comuns e erros.
Conclusão
A gestão eficaz de argumentos é crucial para o desenvolvimento em Go. Seja a passar por valor, por referência, a utilizar argumentos variádicos ou a simular argumentos nomeados com structs, a capacidade de manipular e compreender argumentos é uma competência vital para todos os programadores Go.