Overføring av data til funksjoner
Funksjoner er ikke særlig nyttige hvis vi ikke kan få tilgang til data utenfor dem på grunn av forskjeller i omfang. Vi kan imidlertid sende data inn i funksjoner ved å bruke 'parametere'.
Parametere definerer et format for data som en funksjon forventer å motta når den kalles eller utføres.
I de forrige kapitlene undersøkte vi enkle funksjoner uten parametere. Vi kan derimot erklære en funksjon med parametere ved å bruke følgende syntaks:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Hver parameter kan ha et unikt navn etterfulgt av sin datatypen. Parametere skilles med komma. Parametere følger de samme navnekonvensjonene som variabler.
Her er et eksempel som illustrerer bruk av funksjoner med parametere:
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 legge merke til funksjoner med ett, to og tre parametere. Det er fullt mulig å lage funksjoner med så mange parametere som nødvendig.
Verdier kan gis til disse funksjonene enten direkte eller via variabler. For eksempel, i den følgende setningen gir vi direkte strengverdien der en parameter forventes:
index.go
1outThreeTimes("Hello World")
Alternativt kan vi lagre den i en strengvariabel og deretter sende denne variabelen inn i funksjonen:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
I uttalelsen nedenfor ser du en kombinasjon av begge tilnærmingene:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Du kan velge den metoden som passer best for dine behov.
Merk
Når variabler eller dataverdier sendes inn i en funksjon, kalles de argumenter. I tilfellet
product(a, b, 9)era,bog9argumenter. Motsatt, i funksjonsdeklarasjonen, erval1 int,val2 intogval3 intkjent som parametere.
Det er viktig å sende data inn i funksjoner i den rekkefølgen som er definert av parameterne. For eksempel, i en funksjon func myFunc(an int, b string), skal det første argumentet være et heltall, og det andre skal være en streng; enhver annen rekkefølge vil føre til feil.
Inne i funksjonen fungerer parametrene i praksis som variabler som får verdiene til de sendte argumentene. Derfor vil deklarering av variabler med samme navn som en funksjonsparameter inne i funksjonens kropp føre til feil.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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øring av data til funksjoner
Sveip for å vise menyen
Funksjoner er ikke særlig nyttige hvis vi ikke kan få tilgang til data utenfor dem på grunn av forskjeller i omfang. Vi kan imidlertid sende data inn i funksjoner ved å bruke 'parametere'.
Parametere definerer et format for data som en funksjon forventer å motta når den kalles eller utføres.
I de forrige kapitlene undersøkte vi enkle funksjoner uten parametere. Vi kan derimot erklære en funksjon med parametere ved å bruke følgende syntaks:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Hver parameter kan ha et unikt navn etterfulgt av sin datatypen. Parametere skilles med komma. Parametere følger de samme navnekonvensjonene som variabler.
Her er et eksempel som illustrerer bruk av funksjoner med parametere:
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 legge merke til funksjoner med ett, to og tre parametere. Det er fullt mulig å lage funksjoner med så mange parametere som nødvendig.
Verdier kan gis til disse funksjonene enten direkte eller via variabler. For eksempel, i den følgende setningen gir vi direkte strengverdien der en parameter forventes:
index.go
1outThreeTimes("Hello World")
Alternativt kan vi lagre den i en strengvariabel og deretter sende denne variabelen inn i funksjonen:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
I uttalelsen nedenfor ser du en kombinasjon av begge tilnærmingene:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Du kan velge den metoden som passer best for dine behov.
Merk
Når variabler eller dataverdier sendes inn i en funksjon, kalles de argumenter. I tilfellet
product(a, b, 9)era,bog9argumenter. Motsatt, i funksjonsdeklarasjonen, erval1 int,val2 intogval3 intkjent som parametere.
Det er viktig å sende data inn i funksjoner i den rekkefølgen som er definert av parameterne. For eksempel, i en funksjon func myFunc(an int, b string), skal det første argumentet være et heltall, og det andre skal være en streng; enhver annen rekkefølge vil føre til feil.
Inne i funksjonen fungerer parametrene i praksis som variabler som får verdiene til de sendte argumentene. Derfor vil deklarering av variabler med samme navn som en funksjonsparameter inne i funksjonens kropp føre til feil.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Takk for tilbakemeldingene dine!