Overførsel af Data til Funktioner
Funktioner er ikke særlig nyttige, hvis vi ikke kan få adgang til data uden for dem på grund af forskelle i scopes. Vi kan dog overføre data til funktioner ved hjælp af 'parametre'.
Parametre definerer et format for de data, som en funktion forventer at modtage, når den kaldes eller udføres.
I de foregående kapitler undersøgte vi simple funktioner uden parametre. Vi kan dog erklære en funktion med parametre ved at bruge følgende syntaks:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Hver parameter kan have et unikt navn efterfulgt af sin datatypen. Parametre adskilles med kommaer. Parametre følger de samme navngivningskonventioner som variabler.
Her er et eksempel, der illustrerer brugen af funktioner med parametre:
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) }
I programmet ovenfor vil du bemærke funktioner med én, to og tre parametre. Det er fuldt ud muligt at oprette funktioner med så mange parametre, som der er behov for.
Værdier kan leveres til disse funktioner enten direkte eller via variabler. For eksempel, i den følgende sætning, angiver vi direkte strengværdien, hvor en parameter forventes:
index.go
1outThreeTimes("Hello World")
Alternativt kan vi gemme den i en strengvariabel og derefter videregive denne variabel til funktionen:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
I erklæringen nedenfor ses en kombination af begge tilgange:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Du kan vælge den metode, der passer bedst til dine behov.
Bemærk
Når variabler eller dataværdier sendes ind i en funktion, kaldes de argumenter. I tilfældet
product(a, b, 9)era,bog9argumenter. Omvendt kaldes de i funktionsdeklarationen,val1 int,val2 intogval3 int, for parametre.
Det er vigtigt at sende data ind i funktioner i den rækkefølge, som parametrene er defineret. For eksempel i funktionen func myFunc(an int, b string), skal det første argument være et heltal, og det andet skal være en streng; enhver anden rækkefølge vil resultere i fejl.
Inde i funktionen fungerer parametre reelt som variabler, der får værdierne fra de givne argumenter. Derfor vil det give fejl at erklære variabler med samme navn som en funktionsparameter inden for funktionens krop.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Overførsel af Data til Funktioner
Stryg for at vise menuen
Funktioner er ikke særlig nyttige, hvis vi ikke kan få adgang til data uden for dem på grund af forskelle i scopes. Vi kan dog overføre data til funktioner ved hjælp af 'parametre'.
Parametre definerer et format for de data, som en funktion forventer at modtage, når den kaldes eller udføres.
I de foregående kapitler undersøgte vi simple funktioner uden parametre. Vi kan dog erklære en funktion med parametre ved at bruge følgende syntaks:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Hver parameter kan have et unikt navn efterfulgt af sin datatypen. Parametre adskilles med kommaer. Parametre følger de samme navngivningskonventioner som variabler.
Her er et eksempel, der illustrerer brugen af funktioner med parametre:
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) }
I programmet ovenfor vil du bemærke funktioner med én, to og tre parametre. Det er fuldt ud muligt at oprette funktioner med så mange parametre, som der er behov for.
Værdier kan leveres til disse funktioner enten direkte eller via variabler. For eksempel, i den følgende sætning, angiver vi direkte strengværdien, hvor en parameter forventes:
index.go
1outThreeTimes("Hello World")
Alternativt kan vi gemme den i en strengvariabel og derefter videregive denne variabel til funktionen:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
I erklæringen nedenfor ses en kombination af begge tilgange:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Du kan vælge den metode, der passer bedst til dine behov.
Bemærk
Når variabler eller dataværdier sendes ind i en funktion, kaldes de argumenter. I tilfældet
product(a, b, 9)era,bog9argumenter. Omvendt kaldes de i funktionsdeklarationen,val1 int,val2 intogval3 int, for parametre.
Det er vigtigt at sende data ind i funktioner i den rækkefølge, som parametrene er defineret. For eksempel i funktionen func myFunc(an int, b string), skal det første argument være et heltal, og det andet skal være en streng; enhver anden rækkefølge vil resultere i fejl.
Inde i funktionen fungerer parametre reelt som variabler, der får værdierne fra de givne argumenter. Derfor vil det give fejl at erklære variabler med samme navn som en funktionsparameter inden for funktionens krop.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Tak for dine kommentarer!